diff -ru --strip-trailing-cr BitcasaDLL-20140109/BitcasaDLL/BitcasaAPI.cpp BitcasaDLL-20140111/BitcasaDLL/BitcasaAPI.cpp
--- BitcasaDLL-20140109/BitcasaDLL/BitcasaAPI.cpp	2014-01-09 03:02:20.000000000 +0900
+++ BitcasaDLL-20140111/BitcasaDLL/BitcasaAPI.cpp	2014-01-11 01:38:38.000000000 +0900
@@ -3,7 +3,7 @@
 
 using namespace System::Threading;
 
-const char *ClientID = "";
+const char *ClientID = "77602235";
 const char *ClientSecret = "";
 
 const std::string APIbase("/v1");
@@ -488,14 +488,17 @@
 
 ref class threadwork{
 private:
+	const int retrymax = 10;
 	HttpsClient *bitcasa;
 	std::string *access_token;
 	std::string *URI;
+	int retrycount = retrymax;
 public:
 	bool partial;
 	HANDLE readySlave;
 	HANDLE readyMaster;
 	HANDLE die;
+	HANDLE failDownload;
 	INT64 offset;
 	INT64 len;
 	std::vector<char> *buf;
@@ -519,6 +522,9 @@
 		delete buf;
 		delete bitcasa;
 	}
+	void Abort(){
+		bitcasa->Abort();
+	}
 	void DoWork(){
 		while (WaitForSingleObject(die, 0) == WAIT_TIMEOUT){
 			if ((WaitForSingleObject(readySlave, INFINITE) != WAIT_OBJECT_0) || (WaitForSingleObject(die, 0) != WAIT_TIMEOUT))
@@ -534,23 +540,36 @@
 				for (auto it = bitcasa->response.header.begin(); it != bitcasa->response.header.end(); ++it)
 					std::cerr << it->first << ": " << it->second << std::endl;
 				std::cerr << std::string(bitcasa->response.body.begin(), bitcasa->response.body.end()) << std::endl;
+				SetEvent(readySlave);
 				Sleep(1000 * 10);
-				continue;
+				if (--retrycount > 0)
+					continue;
+				SetEvent(failDownload);
+				break;
 			}
 
 			std::wcerr << ".";
 			if (bitcasa->response.code == 503){
+				SetEvent(readySlave);
 				Sleep(1000 * 10);
-				continue;
+				if (--retrycount > 0)
+					continue;
+				SetEvent(failDownload);
+				break;
 			}
 			if ((bitcasa->response.code != 200) && (bitcasa->response.code != 206)) {
 				std::wcerr << std::endl;
 				std::cerr << "DownloadFile failed" << std::endl;
 				std::cerr << std::string(bitcasa->response.body.begin(), bitcasa->response.body.end()) << std::endl;
 				buf->resize(0);
-				SetEvent(readyMaster);
+				SetEvent(readySlave);
+				Sleep(1000 * 10);
+				if (--retrycount > 0)
+					continue;
+				SetEvent(failDownload);
 				break;
 			}
+			retrycount = retrymax;
 			INT64 ContentLength = -1;
 			auto it_length = bitcasa->response.header.find("Content-Length");
 			std::stringstream((it_length != bitcasa->response.header.end()) ? it_length->second : "") >> ContentLength;
@@ -599,14 +618,17 @@
 	System::Collections::Generic::List<Thread ^> workThreads;
 	System::Collections::Generic::List<threadwork^> data;
 	std::vector<HANDLE> waithandles;
+	HANDLE failDownload = CreateEvent(NULL, true, false, NULL);
 	for (int i = 0; i < threadcount; i++){
 		threadwork^ work = gcnew threadwork(URI, WideChartoUTF8(access_token));
 		data.Add(work);
 		HANDLE h = work->readyMaster;
 		waithandles.push_back(h);
 		WaitForSingleObject(work->die, INFINITE);
+		work->failDownload = failDownload;
 		workThreads.Add(gcnew Thread(gcnew ThreadStart(work, &threadwork::DoWork)));
 	}
+	waithandles.push_back(failDownload);
 	for (int i = 0; i < threadcount; i++){
 		workThreads[i]->Start();
 	}
@@ -620,11 +642,25 @@
 	}
 	try{
 		while (working > 0){
-			auto ret = WaitForMultipleObjects((DWORD)waithandles.size(), &waithandles[0], false, INFINITE);
+			auto ret = WaitForMultipleObjects((DWORD)waithandles.size(), &waithandles[0], false, 3*60*1000);
 			int thread_no = -1;
 			if ((ret >= WAIT_OBJECT_0) && (ret < WAIT_OBJECT_0 + waithandles.size())) thread_no = ret - WAIT_OBJECT_0;
 			if ((ret >= WAIT_ABANDONED_0) && (ret < WAIT_ABANDONED_0 + waithandles.size())) thread_no = ret - WAIT_ABANDONED_0;
+			if (ret == WAIT_TIMEOUT) 
+			{
+				std::cerr << "thread wait timeout" << std::endl;
+				for (int i = 0; i < threadcount; i++){
+					ReleaseMutex(data[i]->die);
+					SetEvent(data[i]->readySlave);
+					data[i]->Abort();
+				}
+				for (int i = 0; i < threadcount; i++){
+					workThreads[i]->Abort();
+				}
+			}
+			std::cerr << "thread return:" << thread_no << std::endl;
 			if (thread_no < 0) return false;
+			if (thread_no == threadcount) return false;
 
 			threadwork^ work = data[thread_no];
 
diff -ru --strip-trailing-cr BitcasaDLL-20140109/BitcasaDLL/http_client.cpp BitcasaDLL-20140111/BitcasaDLL/http_client.cpp
--- BitcasaDLL-20140109/BitcasaDLL/http_client.cpp	2014-01-07 02:03:24.000000000 +0900
+++ BitcasaDLL-20140111/BitcasaDLL/http_client.cpp	2014-01-10 14:53:00.000000000 +0900
@@ -37,6 +37,7 @@
 std::fstream ConsoleInput, ConsoleOutput, ConsoleError;
 
 bool HttpsClient::initialize = false;
+HANDLE *HttpsClient::lock_cs = NULL;
 
 HttpsClient::HttpsClient()
 {
@@ -46,6 +47,7 @@
 		SSL_load_error_strings();
 		OpenSSL_add_all_algorithms();
 		SSL_library_init();
+		thread_setup();
 		HttpsClient::initialize = true;
 	}
 	/* Set up the SSL context */
@@ -56,7 +58,7 @@
 		exit(1);
 	}
 	SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2);
-	SSL_CTX_set_timeout(ctx, 300);
+	SSL_CTX_set_timeout(ctx, 180);
 
 	/* Load the trust store */
 
@@ -82,7 +84,7 @@
 		bio = BIO_push(bio_logger, bio);
 	}
 	struct timeval timeout;
-	timeout.tv_sec = 300;
+	timeout.tv_sec = 180;
 	timeout.tv_usec = 0;
 	BIO_ctrl(bio, BIO_CTRL_DGRAM_SET_RECV_TIMEOUT, 0, &timeout);
 
@@ -126,6 +128,38 @@
 	SSL_CTX_free(ctx);
 }
 
+//https://svn.apache.org/repos/asf/incubator/juice/native/src/InitializeOpenSSL.c
+void HttpsClient::thread_setup(void) {
+	int i;
+
+	lock_cs = (HANDLE *)OPENSSL_malloc(CRYPTO_num_locks() * sizeof(HANDLE));
+	for (i = 0; i<CRYPTO_num_locks(); i++) {
+		lock_cs[i] = CreateMutex(NULL, FALSE, NULL);
+	}
+
+	CRYPTO_set_locking_callback((void(*)(int, int, const char *, int))my_locking_callback);
+	/* id callback defined */
+}
+
+void HttpsClient::thread_cleanup(void) {
+	int i;
+
+	CRYPTO_set_locking_callback(NULL);
+	for (i = 0; i<CRYPTO_num_locks(); i++) {
+		CloseHandle(lock_cs[i]);
+	}
+	OPENSSL_free(lock_cs);
+}
+
+void HttpsClient::my_locking_callback(int mode, int type, const char *file, int line) {
+	if (mode & CRYPTO_LOCK) {
+		WaitForSingleObject(lock_cs[type], INFINITE);
+	}
+	else {
+		ReleaseMutex(lock_cs[type]);
+	}
+}
+
 
 int HttpsClient::send()
 {
diff -ru --strip-trailing-cr BitcasaDLL-20140109/BitcasaDLL/http_client.h BitcasaDLL-20140111/BitcasaDLL/http_client.h
--- BitcasaDLL-20140109/BitcasaDLL/http_client.h	2014-01-05 20:00:32.000000000 +0900
+++ BitcasaDLL-20140111/BitcasaDLL/http_client.h	2014-01-10 13:17:54.000000000 +0900
@@ -21,6 +21,10 @@
 	int sendfile(std::ifstream& infile, std::string filename, void(CALLBACK *callback)(INT64) = NULL);
 	std::string ReadLine();
 
+	static HANDLE *lock_cs;
+	static void thread_setup(void);
+	static void thread_cleanup(void);
+	static void my_locking_callback(int mode, int type, const char *file, int line);
 public:
 	std::vector<char> buffer;
 	struct {
@@ -50,5 +54,6 @@
 
 	int Print();
 	int Clear();
-	void Reset() { if(bio) BIO_reset(bio); }
+	void Reset() { if (bio) BIO_reset(bio); }
+	void Abort() { if (ssl) SSL_shutdown(ssl); }
 };
diff -ru --strip-trailing-cr BitcasaDLL-20140109/bitcasaViewer/BitcasaTreeSelect.cs BitcasaDLL-20140111/bitcasaViewer/BitcasaTreeSelect.cs
--- BitcasaDLL-20140109/bitcasaViewer/BitcasaTreeSelect.cs	2014-01-01 18:17:12.000000000 +0900
+++ BitcasaDLL-20140111/bitcasaViewer/BitcasaTreeSelect.cs	2014-01-11 01:19:22.000000000 +0900
@@ -51,5 +51,6 @@
             treeView1.Nodes.Clear();
             treeView1.Nodes.Add("root");
         }
+
     }
 }
diff -ru --strip-trailing-cr BitcasaDLL-20140109/bitcasaViewer/BitcasaTreeSelect.Designer.cs BitcasaDLL-20140111/bitcasaViewer/BitcasaTreeSelect.Designer.cs
--- BitcasaDLL-20140109/bitcasaViewer/BitcasaTreeSelect.Designer.cs	2014-01-01 17:58:00.000000000 +0900
+++ BitcasaDLL-20140111/bitcasaViewer/BitcasaTreeSelect.Designer.cs	2014-01-11 01:19:22.000000000 +0900
@@ -28,72 +28,101 @@
         /// </summary>
         private void InitializeComponent()
         {
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.button2 = new System.Windows.Forms.Button();
             this.label1 = new System.Windows.Forms.Label();
-            this.treeView1 = new System.Windows.Forms.TreeView();
             this.button1 = new System.Windows.Forms.Button();
-            this.button2 = new System.Windows.Forms.Button();
+            this.panel2 = new System.Windows.Forms.Panel();
+            this.treeView1 = new System.Windows.Forms.TreeView();
+            this.panel1.SuspendLayout();
+            this.panel2.SuspendLayout();
             this.SuspendLayout();
             // 
+            // panel1
+            // 
+            this.panel1.Controls.Add(this.button2);
+            this.panel1.Controls.Add(this.label1);
+            this.panel1.Controls.Add(this.button1);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
+            this.panel1.Location = new System.Drawing.Point(0, 0);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(367, 33);
+            this.panel1.TabIndex = 4;
+            // 
+            // button2
+            // 
+            this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.button2.Location = new System.Drawing.Point(262, 4);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(75, 23);
+            this.button2.TabIndex = 8;
+            this.button2.Text = "Cancel";
+            this.button2.UseVisualStyleBackColor = true;
+            // 
             // label1
             // 
             this.label1.AutoSize = true;
             this.label1.Location = new System.Drawing.Point(12, 9);
             this.label1.Name = "label1";
             this.label1.Size = new System.Drawing.Size(152, 12);
-            this.label1.TabIndex = 0;
+            this.label1.TabIndex = 7;
             this.label1.Text = "Select remote Bitcasa folder";
             // 
-            // treeView1
-            // 
-            this.treeView1.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.treeView1.Location = new System.Drawing.Point(0, 38);
-            this.treeView1.Name = "treeView1";
-            this.treeView1.Size = new System.Drawing.Size(442, 403);
-            this.treeView1.TabIndex = 1;
-            this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
-            // 
             // button1
             // 
+            this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
-            this.button1.Location = new System.Drawing.Point(223, 9);
+            this.button1.Location = new System.Drawing.Point(181, 4);
             this.button1.Name = "button1";
             this.button1.Size = new System.Drawing.Size(75, 23);
-            this.button1.TabIndex = 2;
+            this.button1.TabIndex = 6;
             this.button1.Text = "OK";
             this.button1.UseVisualStyleBackColor = true;
             // 
-            // button2
+            // panel2
             // 
-            this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-            this.button2.Location = new System.Drawing.Point(330, 9);
-            this.button2.Name = "button2";
-            this.button2.Size = new System.Drawing.Size(75, 23);
-            this.button2.TabIndex = 3;
-            this.button2.Text = "Cancel";
-            this.button2.UseVisualStyleBackColor = true;
+            this.panel2.Controls.Add(this.treeView1);
+            this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel2.Location = new System.Drawing.Point(0, 33);
+            this.panel2.Name = "panel2";
+            this.panel2.Size = new System.Drawing.Size(367, 372);
+            this.panel2.TabIndex = 5;
+            // 
+            // treeView1
+            // 
+            this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.treeView1.Location = new System.Drawing.Point(0, 0);
+            this.treeView1.Name = "treeView1";
+            this.treeView1.Size = new System.Drawing.Size(367, 372);
+            this.treeView1.TabIndex = 2;
+            this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
             // 
             // BitcasaTreeSelect
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(442, 441);
-            this.Controls.Add(this.button2);
-            this.Controls.Add(this.button1);
-            this.Controls.Add(this.treeView1);
-            this.Controls.Add(this.label1);
+            this.ClientSize = new System.Drawing.Size(367, 405);
+            this.Controls.Add(this.panel2);
+            this.Controls.Add(this.panel1);
             this.Name = "BitcasaTreeSelect";
             this.Text = "BitcasaTreeSelect";
             this.Shown += new System.EventHandler(this.BitcasaTreeSelect_Shown);
+            this.panel1.ResumeLayout(false);
+            this.panel1.PerformLayout();
+            this.panel2.ResumeLayout(false);
             this.ResumeLayout(false);
-            this.PerformLayout();
 
         }
 
         #endregion
 
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.Button button2;
         private System.Windows.Forms.Label label1;
-        private System.Windows.Forms.TreeView treeView1;
         private System.Windows.Forms.Button button1;
-        private System.Windows.Forms.Button button2;
+        private System.Windows.Forms.Panel panel2;
+        private System.Windows.Forms.TreeView treeView1;
+
     }
 }
\ No newline at end of file
diff -ru --strip-trailing-cr BitcasaDLL-20140109/bitcasaViewer/Form1.Designer.cs BitcasaDLL-20140111/bitcasaViewer/Form1.Designer.cs
--- BitcasaDLL-20140109/bitcasaViewer/Form1.Designer.cs	2014-01-09 02:32:40.000000000 +0900
+++ BitcasaDLL-20140111/bitcasaViewer/Form1.Designer.cs	2014-01-11 01:20:14.000000000 +0900
@@ -95,7 +95,7 @@
             this.profileToolStripMenuItem});
             this.menuStrip1.Location = new System.Drawing.Point(0, 0);
             this.menuStrip1.Name = "menuStrip1";
-            this.menuStrip1.Size = new System.Drawing.Size(807, 26);
+            this.menuStrip1.Size = new System.Drawing.Size(774, 26);
             this.menuStrip1.TabIndex = 0;
             this.menuStrip1.Text = "menuStrip1";
             // 
@@ -259,7 +259,7 @@
             this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.panel1.Location = new System.Drawing.Point(0, 26);
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(807, 579);
+            this.panel1.Size = new System.Drawing.Size(774, 550);
             this.panel1.TabIndex = 1;
             // 
             // splitContainer1
@@ -276,17 +276,17 @@
             // splitContainer1.Panel2
             // 
             this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
-            this.splitContainer1.Size = new System.Drawing.Size(807, 579);
-            this.splitContainer1.SplitterDistance = 177;
+            this.splitContainer1.Size = new System.Drawing.Size(774, 550);
+            this.splitContainer1.SplitterDistance = 169;
             this.splitContainer1.TabIndex = 9;
             // 
             // statusStrip1
             // 
             this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripProgressBar1});
-            this.statusStrip1.Location = new System.Drawing.Point(0, 557);
+            this.statusStrip1.Location = new System.Drawing.Point(0, 528);
             this.statusStrip1.Name = "statusStrip1";
-            this.statusStrip1.Size = new System.Drawing.Size(177, 22);
+            this.statusStrip1.Size = new System.Drawing.Size(169, 22);
             this.statusStrip1.TabIndex = 3;
             this.statusStrip1.Text = "statusStrip1";
             // 
@@ -301,7 +301,7 @@
             this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.treeView1.Location = new System.Drawing.Point(0, 0);
             this.treeView1.Name = "treeView1";
-            this.treeView1.Size = new System.Drawing.Size(177, 579);
+            this.treeView1.Size = new System.Drawing.Size(169, 550);
             this.treeView1.TabIndex = 2;
             this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
             // 
@@ -320,8 +320,8 @@
             // 
             this.splitContainer2.Panel2.Controls.Add(this.statusStrip2);
             this.splitContainer2.Panel2.Controls.Add(this.listBox1);
-            this.splitContainer2.Size = new System.Drawing.Size(626, 579);
-            this.splitContainer2.SplitterDistance = 341;
+            this.splitContainer2.Size = new System.Drawing.Size(601, 550);
+            this.splitContainer2.SplitterDistance = 323;
             this.splitContainer2.TabIndex = 0;
             // 
             // listView1
@@ -340,7 +340,7 @@
             this.listView1.Location = new System.Drawing.Point(0, 0);
             this.listView1.Name = "listView1";
             this.listView1.OwnerDraw = true;
-            this.listView1.Size = new System.Drawing.Size(626, 341);
+            this.listView1.Size = new System.Drawing.Size(601, 323);
             this.listView1.TabIndex = 4;
             this.listView1.UseCompatibleStateImageBehavior = false;
             this.listView1.View = System.Windows.Forms.View.Details;
@@ -390,16 +390,16 @@
             // 
             this.statusStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.toolStripStatusLabel1});
-            this.statusStrip2.Location = new System.Drawing.Point(0, 212);
+            this.statusStrip2.Location = new System.Drawing.Point(0, 201);
             this.statusStrip2.Name = "statusStrip2";
-            this.statusStrip2.Size = new System.Drawing.Size(626, 22);
+            this.statusStrip2.Size = new System.Drawing.Size(601, 22);
             this.statusStrip2.TabIndex = 6;
             this.statusStrip2.Text = "statusStrip2";
             // 
             // toolStripStatusLabel1
             // 
             this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
-            this.toolStripStatusLabel1.Size = new System.Drawing.Size(611, 17);
+            this.toolStripStatusLabel1.Size = new System.Drawing.Size(586, 17);
             this.toolStripStatusLabel1.Spring = true;
             this.toolStripStatusLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
             // 
@@ -410,14 +410,14 @@
             this.listBox1.ItemHeight = 12;
             this.listBox1.Location = new System.Drawing.Point(0, 0);
             this.listBox1.Name = "listBox1";
-            this.listBox1.Size = new System.Drawing.Size(626, 234);
+            this.listBox1.Size = new System.Drawing.Size(601, 223);
             this.listBox1.TabIndex = 5;
             // 
             // checkBox_reload
             // 
             this.checkBox_reload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.checkBox_reload.AutoSize = true;
-            this.checkBox_reload.Location = new System.Drawing.Point(715, 4);
+            this.checkBox_reload.Location = new System.Drawing.Point(682, 4);
             this.checkBox_reload.Name = "checkBox_reload";
             this.checkBox_reload.Size = new System.Drawing.Size(83, 16);
             this.checkBox_reload.TabIndex = 2;
@@ -428,13 +428,13 @@
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(807, 605);
+            this.ClientSize = new System.Drawing.Size(774, 576);
             this.Controls.Add(this.checkBox_reload);
             this.Controls.Add(this.panel1);
             this.Controls.Add(this.menuStrip1);
             this.MainMenuStrip = this.menuStrip1;
             this.Name = "Form1";
-            this.Text = "Form1";
+            this.Text = "bitcasa_Viewer";
             this.menuStrip1.ResumeLayout(false);
             this.menuStrip1.PerformLayout();
             this.contextMenuStrip1.ResumeLayout(false);
diff -ru --strip-trailing-cr BitcasaDLL-20140109/bitcasaViewer/FormDiff.cs BitcasaDLL-20140111/bitcasaViewer/FormDiff.cs
--- BitcasaDLL-20140109/bitcasaViewer/FormDiff.cs	2014-01-02 03:47:22.000000000 +0900
+++ BitcasaDLL-20140111/bitcasaViewer/FormDiff.cs	2014-01-11 01:15:42.000000000 +0900
@@ -155,5 +155,6 @@
             listBox1.EndUpdate();
         }
 
+
     }
 }
diff -ru --strip-trailing-cr BitcasaDLL-20140109/bitcasaViewer/FormDiff.Designer.cs BitcasaDLL-20140111/bitcasaViewer/FormDiff.Designer.cs
--- BitcasaDLL-20140109/bitcasaViewer/FormDiff.Designer.cs	2014-01-02 03:04:10.000000000 +0900
+++ BitcasaDLL-20140111/bitcasaViewer/FormDiff.Designer.cs	2014-01-11 01:15:42.000000000 +0900
@@ -28,26 +28,17 @@
         /// </summary>
         private void InitializeComponent()
         {
-            this.listBox1 = new System.Windows.Forms.ListBox();
             this.panel1 = new System.Windows.Forms.Panel();
-            this.button1 = new System.Windows.Forms.Button();
-            this.button2 = new System.Windows.Forms.Button();
-            this.label1 = new System.Windows.Forms.Label();
             this.label2 = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.button2 = new System.Windows.Forms.Button();
+            this.button1 = new System.Windows.Forms.Button();
+            this.panel2 = new System.Windows.Forms.Panel();
+            this.listBox1 = new System.Windows.Forms.ListBox();
             this.panel1.SuspendLayout();
+            this.panel2.SuspendLayout();
             this.SuspendLayout();
             // 
-            // listBox1
-            // 
-            this.listBox1.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
-            this.listBox1.FormattingEnabled = true;
-            this.listBox1.Location = new System.Drawing.Point(0, 40);
-            this.listBox1.Name = "listBox1";
-            this.listBox1.Size = new System.Drawing.Size(525, 420);
-            this.listBox1.TabIndex = 0;
-            this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);
-            // 
             // panel1
             // 
             this.panel1.Controls.Add(this.label2);
@@ -57,18 +48,26 @@
             this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
             this.panel1.Location = new System.Drawing.Point(0, 0);
             this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(525, 34);
+            this.panel1.Size = new System.Drawing.Size(399, 34);
             this.panel1.TabIndex = 1;
             // 
-            // button1
+            // label2
             // 
-            this.button1.Location = new System.Drawing.Point(12, 8);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(75, 23);
-            this.button1.TabIndex = 0;
-            this.button1.Text = "Diff";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(207, 20);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(35, 12);
+            this.label2.TabIndex = 3;
+            this.label2.Text = "label2";
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(207, 8);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(35, 12);
+            this.label1.TabIndex = 2;
+            this.label1.Text = "label1";
             // 
             // button2
             // 
@@ -80,46 +79,60 @@
             this.button2.UseVisualStyleBackColor = true;
             this.button2.Click += new System.EventHandler(this.button2_Click);
             // 
-            // label1
+            // button1
             // 
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(207, 8);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(35, 12);
-            this.label1.TabIndex = 2;
-            this.label1.Text = "label1";
+            this.button1.Location = new System.Drawing.Point(12, 8);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(75, 23);
+            this.button1.TabIndex = 0;
+            this.button1.Text = "Diff";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
             // 
-            // label2
+            // panel2
             // 
-            this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(207, 20);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(35, 12);
-            this.label2.TabIndex = 3;
-            this.label2.Text = "label2";
+            this.panel2.Controls.Add(this.listBox1);
+            this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel2.Location = new System.Drawing.Point(0, 34);
+            this.panel2.Name = "panel2";
+            this.panel2.Size = new System.Drawing.Size(399, 345);
+            this.panel2.TabIndex = 2;
+            // 
+            // listBox1
+            // 
+            this.listBox1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
+            this.listBox1.FormattingEnabled = true;
+            this.listBox1.Location = new System.Drawing.Point(0, 0);
+            this.listBox1.Name = "listBox1";
+            this.listBox1.Size = new System.Drawing.Size(399, 345);
+            this.listBox1.TabIndex = 1;
+            this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);
             // 
             // FormDiff
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(525, 460);
+            this.ClientSize = new System.Drawing.Size(399, 379);
+            this.Controls.Add(this.panel2);
             this.Controls.Add(this.panel1);
-            this.Controls.Add(this.listBox1);
             this.Name = "FormDiff";
             this.Text = "Diff";
             this.panel1.ResumeLayout(false);
             this.panel1.PerformLayout();
+            this.panel2.ResumeLayout(false);
             this.ResumeLayout(false);
 
         }
 
         #endregion
 
-        private System.Windows.Forms.ListBox listBox1;
         private System.Windows.Forms.Panel panel1;
         private System.Windows.Forms.Button button1;
         private System.Windows.Forms.Button button2;
         private System.Windows.Forms.Label label2;
         private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Panel panel2;
+        private System.Windows.Forms.ListBox listBox1;
     }
 }
\ No newline at end of file
diff -ru --strip-trailing-cr BitcasaDLL-20140109/bitcasaViewer/FormFind.Designer.cs BitcasaDLL-20140111/bitcasaViewer/FormFind.Designer.cs
--- BitcasaDLL-20140109/bitcasaViewer/FormFind.Designer.cs	2013-12-28 20:16:02.000000000 +0900
+++ BitcasaDLL-20140111/bitcasaViewer/FormFind.Designer.cs	2014-01-11 01:08:32.000000000 +0900
@@ -34,6 +34,7 @@
             this.label1 = new System.Windows.Forms.Label();
             this.checkBox_regular = new System.Windows.Forms.CheckBox();
             this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.label2 = new System.Windows.Forms.Label();
             this.label5 = new System.Windows.Forms.Label();
             this.label4 = new System.Windows.Forms.Label();
             this.label3 = new System.Windows.Forms.Label();
@@ -45,26 +46,28 @@
             this.label7 = new System.Windows.Forms.Label();
             this.textBox_sizemax = new System.Windows.Forms.TextBox();
             this.textBox_sizemin = new System.Windows.Forms.TextBox();
-            this.label2 = new System.Windows.Forms.Label();
             this.groupBox1.SuspendLayout();
             this.groupBox2.SuspendLayout();
             this.SuspendLayout();
             // 
             // comboBox1
             // 
+            this.comboBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
             this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
             this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
             this.comboBox1.FormattingEnabled = true;
             this.comboBox1.Location = new System.Drawing.Point(12, 39);
             this.comboBox1.Name = "comboBox1";
-            this.comboBox1.Size = new System.Drawing.Size(259, 20);
+            this.comboBox1.Size = new System.Drawing.Size(268, 20);
             this.comboBox1.TabIndex = 0;
             this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
             // 
             // button1
             // 
+            this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
-            this.button1.Location = new System.Drawing.Point(303, 39);
+            this.button1.Location = new System.Drawing.Point(313, 39);
             this.button1.Name = "button1";
             this.button1.Size = new System.Drawing.Size(75, 23);
             this.button1.TabIndex = 1;
@@ -74,8 +77,9 @@
             // 
             // button2
             // 
+            this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-            this.button2.Location = new System.Drawing.Point(303, 95);
+            this.button2.Location = new System.Drawing.Point(313, 95);
             this.button2.Name = "button2";
             this.button2.Size = new System.Drawing.Size(75, 23);
             this.button2.TabIndex = 2;
@@ -116,6 +120,15 @@
             this.groupBox1.TabStop = false;
             this.groupBox1.Text = "DateTime (AND)";
             // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(24, 65);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(287, 24);
+            this.label2.TabIndex = 29;
+            this.label2.Text = "ex) 2001/12/31 12:23:00 ;   2010/12/3 (as 00:00:00) ;   \r\n12:30 (as today)\r\n";
+            // 
             // label5
             // 
             this.label5.AutoSize = true;
@@ -216,20 +229,11 @@
             this.textBox_sizemin.TabIndex = 17;
             this.textBox_sizemin.TextChanged += new System.EventHandler(this.textBox_sizemin_TextChanged);
             // 
-            // label2
-            // 
-            this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(24, 65);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(287, 24);
-            this.label2.TabIndex = 29;
-            this.label2.Text = "ex) 2001/12/31 12:23:00 ;   2010/12/3 (as 00:00:00) ;   \r\n12:30 (as today)\r\n";
-            // 
             // FormFind
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(390, 292);
+            this.ClientSize = new System.Drawing.Size(400, 315);
             this.Controls.Add(this.groupBox2);
             this.Controls.Add(this.groupBox1);
             this.Controls.Add(this.checkBox_regular);
diff -ru --strip-trailing-cr BitcasaDLL-20140109/bitcasaViewer/FormInput.Designer.cs BitcasaDLL-20140111/bitcasaViewer/FormInput.Designer.cs
--- BitcasaDLL-20140109/bitcasaViewer/FormInput.Designer.cs	2013-12-27 17:20:24.000000000 +0900
+++ BitcasaDLL-20140111/bitcasaViewer/FormInput.Designer.cs	2014-01-11 01:11:50.000000000 +0900
@@ -45,9 +45,11 @@
             // 
             // textBox1
             // 
+            this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
             this.textBox1.Location = new System.Drawing.Point(11, 42);
             this.textBox1.Name = "textBox1";
-            this.textBox1.Size = new System.Drawing.Size(261, 19);
+            this.textBox1.Size = new System.Drawing.Size(247, 19);
             this.textBox1.TabIndex = 1;
             // 
             // button1
@@ -62,8 +64,9 @@
             // 
             // button2
             // 
+            this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
             this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-            this.button2.Location = new System.Drawing.Point(163, 67);
+            this.button2.Location = new System.Drawing.Point(149, 67);
             this.button2.Name = "button2";
             this.button2.Size = new System.Drawing.Size(75, 23);
             this.button2.TabIndex = 3;
@@ -74,7 +77,7 @@
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(284, 95);
+            this.ClientSize = new System.Drawing.Size(268, 106);
             this.Controls.Add(this.button2);
             this.Controls.Add(this.button1);
             this.Controls.Add(this.textBox1);
diff -ru --strip-trailing-cr BitcasaDLL-20140109/WebWindow/Form1.cs BitcasaDLL-20140111/WebWindow/Form1.cs
--- BitcasaDLL-20140109/WebWindow/Form1.cs	2014-01-09 03:02:32.000000000 +0900
+++ BitcasaDLL-20140111/WebWindow/Form1.cs	2014-01-10 10:57:32.000000000 +0900
@@ -12,7 +12,7 @@
 {
     public partial class Form1 : Form
     {
-        private string client_id = "";
+        private string client_id = "77602235";
         private string redirect = "https://www.lithium03.info/login/login_success.html";
         public string authentication_code;
 
