| 
					
				 | 
			
			
				@@ -200,9 +200,10 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_DIR, TEXT_DIR, File::getCurrentDir(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 PATH_TO_DIR, OptionHandler::REQ_ARG, 'd')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_DIR, TEXT_DIR, File::getCurrentDir(), /* acceptStdin = */ false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'd', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* mustExist = */ false, PATH_TO_DIR)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_BASIC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_FILE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->setInitialOption(true); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -390,9 +391,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PREF_INPUT_FILE, TEXT_INPUT_FILE, NO_DEFAULT_VALUE, PATH_TO_FILE_STDIN, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        OptionHandler::REQ_ARG, 'i')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_INPUT_FILE, TEXT_INPUT_FILE, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ true, 'i', /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_BASIC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -413,9 +414,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PREF_LOG, TEXT_LOG, NO_DEFAULT_VALUE, PATH_TO_FILE_STDOUT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        OptionHandler::REQ_ARG, 'l')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_LOG, TEXT_LOG, NO_DEFAULT_VALUE, /* acceptStdin = */ false, 'l', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* mustExist = */ false, PATH_TO_FILE_STDOUT)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_BASIC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->setChangeGlobalOption(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -542,41 +543,46 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PREF_ON_DOWNLOAD_COMPLETE, TEXT_ON_DOWNLOAD_COMPLETE, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_ADVANCED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HOOK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_ON_DOWNLOAD_ERROR, TEXT_ON_DOWNLOAD_ERROR, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 NO_DEFAULT_VALUE, PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_ON_DOWNLOAD_ERROR, TEXT_ON_DOWNLOAD_ERROR, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_ADVANCED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HOOK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_ON_DOWNLOAD_PAUSE, TEXT_ON_DOWNLOAD_PAUSE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 NO_DEFAULT_VALUE, PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_ON_DOWNLOAD_PAUSE, TEXT_ON_DOWNLOAD_PAUSE, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_ADVANCED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HOOK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_ON_DOWNLOAD_START, TEXT_ON_DOWNLOAD_START, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 NO_DEFAULT_VALUE, PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_ON_DOWNLOAD_START, TEXT_ON_DOWNLOAD_START, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_ADVANCED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HOOK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_ON_DOWNLOAD_STOP, TEXT_ON_DOWNLOAD_STOP, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 NO_DEFAULT_VALUE, PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_ON_DOWNLOAD_STOP, TEXT_ON_DOWNLOAD_STOP, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_ADVANCED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HOOK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -645,8 +651,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PREF_SAVE_SESSION, TEXT_SAVE_SESSION, NO_DEFAULT_VALUE, PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_SAVE_SESSION, TEXT_SAVE_SESSION, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_ADVANCED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->setChangeGlobalOption(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -741,8 +748,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ifdef HAVE_APPLETLS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_RPC_CERTIFICATE, TEXT_RPC_CERTIFICATE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 NO_DEFAULT_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PREF_RPC_CERTIFICATE, TEXT_RPC_CERTIFICATE, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /* acceptStdin = */ false, 0, /* mustExist = */ false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #else  // HAVE_APPLETLS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             PREF_RPC_CERTIFICATE, TEXT_RPC_CERTIFICATE, NO_DEFAULT_VALUE, false) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -884,9 +892,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler(PREF_OUT, TEXT_OUT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               NO_DEFAULT_VALUE, PATH_TO_FILE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               OptionHandler::REQ_ARG, 'o')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_OUT, TEXT_OUT, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 'o', /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_BASIC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_FTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTP); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -937,17 +945,17 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler(PREF_SERVER_STAT_IF, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               TEXT_SERVER_STAT_IF, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               NO_DEFAULT_VALUE, PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_SERVER_STAT_IF, TEXT_SERVER_STAT_IF, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_FTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler(PREF_SERVER_STAT_OF, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               TEXT_SERVER_STAT_OF, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               NO_DEFAULT_VALUE, PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_SERVER_STAT_OF, TEXT_SERVER_STAT_OF, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_FTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->setChangeGlobalOption(true); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1012,14 +1020,14 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // HTTP Specific Options 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler(PREF_CA_CERTIFICATE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               TEXT_CA_CERTIFICATE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_CA_CERTIFICATE, TEXT_CA_CERTIFICATE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #ifdef CA_BUNDLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               CA_BUNDLE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CA_BUNDLE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTPS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1128,8 +1136,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PREF_LOAD_COOKIES, TEXT_LOAD_COOKIES, NO_DEFAULT_VALUE, PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_LOAD_COOKIES, TEXT_LOAD_COOKIES, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_BASIC); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_COOKIE); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1151,8 +1160,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PREF_PRIVATE_KEY, TEXT_PRIVATE_KEY, NO_DEFAULT_VALUE, PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_PRIVATE_KEY, TEXT_PRIVATE_KEY, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTPS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1166,8 +1176,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PREF_SAVE_COOKIES, TEXT_SAVE_COOKIES, NO_DEFAULT_VALUE, PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_SAVE_COOKIES, TEXT_SAVE_COOKIES, NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HTTP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_COOKIE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->setChangeGlobalOption(true); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1252,9 +1263,9 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler(PREF_NETRC_PATH, TEXT_NETRC_PATH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               util::getHomeDir() + "/.netrc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                               PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_NETRC_PATH, TEXT_NETRC_PATH, util::getHomeDir() + "/.netrc", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Proxy options 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1682,16 +1693,16 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_DHT_FILE_PATH, TEXT_DHT_FILE_PATH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 util::getDHTFile(false), PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_DHT_FILE_PATH, TEXT_DHT_FILE_PATH, util::getDHTFile(false), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_BITTORRENT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        new DefaultOptionHandler(PREF_DHT_FILE_PATH6, TEXT_DHT_FILE_PATH6, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                 util::getDHTFile(true), PATH_TO_FILE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PREF_DHT_FILE_PATH6, TEXT_DHT_FILE_PATH6, util::getDHTFile(true), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_BITTORRENT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1795,9 +1806,11 @@ std::vector<OptionHandler*> OptionHandlerFactory::createOptionHandlers() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    OptionHandler* op(new DefaultOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OptionHandler* op(new LocalFilePathOptionHandler( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PREF_ON_BT_DOWNLOAD_COMPLETE, TEXT_ON_BT_DOWNLOAD_COMPLETE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        NO_DEFAULT_VALUE, PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        NO_DEFAULT_VALUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* acceptStdin = */ false, 0, /* mustExist = */ false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PATH_TO_COMMAND)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_ADVANCED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     op->addTag(TAG_HOOK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     handlers.push_back(op); 
			 |