| 
					
				 | 
			
			
				@@ -95,95 +95,93 @@ typedef struct config_var_t { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * be chosen first. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static config_var_t _option_vars[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("Address",             STRING,   Address,              NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("AccountingMax",       MEMUNIT,   AccountingMax,        "0 bytes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("AccountingMaxKB",     UINT,     _AccountingMaxKB,     "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("AccountingStart",     STRING,   AccountingStart,      NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("Address",             STRING,   Address,              NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("AllowUnverifiedNodes",CSV,      AllowUnverifiedNodes, "middle,rendezvous"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("AuthoritativeDirectory",BOOL,   AuthoritativeDir,     "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("BandwidthRate",       MEMUNIT,  BandwidthRate,        "2 MB"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("BandwidthBurst",      MEMUNIT,  BandwidthBurst,       "5 MB"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("MaxAdvertisedBandwidth",MEMUNIT,MaxAdvertisedBandwidth,"128 TB"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("BandwidthRate",       MEMUNIT,  BandwidthRate,        "2 MB"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("ClientOnly",          BOOL,     ClientOnly,           "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("ConnLimit",           UINT,     ConnLimit,            "1024"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("ContactInfo",         STRING,   ContactInfo,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("ControlPort",         UINT,     ControlPort,          "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("CookieAuthentication",BOOL,     CookieAuthentication, "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("DebugLogFile",        STRING,   DebugLogFile,         NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("DataDirectory",       STRING,   DataDirectory,        NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("DebugLogFile",        STRING,   DebugLogFile,         NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("DirAllowPrivateAddresses",BOOL, DirAllowPrivateAddresses, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("DirPort",             UINT,     DirPort,              "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("DirBindAddress",      LINELIST, DirBindAddress,       NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /** DOCDOC **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("DirFetchPeriod",      INTERVAL, DirFetchPeriod,       "0 seconds"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("DirPostPeriod",       INTERVAL, DirPostPeriod,        "20 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("RendPostPeriod",      INTERVAL, RendPostPeriod,       "20 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("DirFetchPeriod",      INTERVAL, DirFetchPeriod,       "0 seconds"),  /** DOCDOC **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("DirPolicy",           LINELIST, DirPolicy,            NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("DirPort",             UINT,     DirPort,              "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("DirPostPeriod",       INTERVAL, DirPostPeriod,        "20 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("DirServer",           LINELIST, DirServers,           NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("ExitNodes",           STRING,   ExitNodes,            NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("EntryNodes",          STRING,   EntryNodes,           NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("StrictExitNodes",     BOOL,     StrictExitNodes,      "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("StrictEntryNodes",    BOOL,     StrictEntryNodes,     "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("ExitPolicy",          LINELIST, ExitPolicy,           NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("ExcludeNodes",        STRING,   ExcludeNodes,         NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("TrackHostExits",      CSV,      TrackHostExits,       NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("TrackHostExitsExpire",INTERVAL, TrackHostExitsExpire, "30 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("MapAddress",          LINELIST, AddressMap,           NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("ExitNodes",           STRING,   ExitNodes,            NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("ExitPolicy",          LINELIST, ExitPolicy,           NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("FascistFirewall",     BOOL,     FascistFirewall,      "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("FirewallPorts",       CSV,      FirewallPorts,        "80,443"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("MyFamily",            STRING,   MyFamily,             NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("NodeFamily",          LINELIST, NodeFamilies,         NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("NoPublish",           BOOL,     NoPublish,            "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("Group",               STRING,   Group,                NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("HardwareAccel",       BOOL,     HardwareAccel,        "1"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HashedControlPassword",STRING,  HashedControlPassword, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("HiddenServiceDir",    LINELIST_S, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("HiddenServiceExcludeNodes", LINELIST_S, RendConfigLines, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("HiddenServiceNodes",  LINELIST_S, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("HiddenServiceOptions",LINELIST_V, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("HiddenServicePort",   LINELIST_S, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HttpProxy",           STRING,   HttpProxy,            NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HttpProxyAuthenticator",STRING, HttpProxyAuthenticator,NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HttpsProxy",          STRING,   HttpsProxy,           NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HttpsProxyAuthenticator",STRING,HttpsProxyAuthenticator,NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("HardwareAccel",       BOOL,     HardwareAccel,        "1"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("HiddenServiceOptions",LINELIST_V, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("HiddenServiceDir",    LINELIST_S, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("HiddenServicePort",   LINELIST_S, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("HiddenServiceNodes",  LINELIST_S, RendConfigLines,    NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("HiddenServiceExcludeNodes", LINELIST_S, RendConfigLines, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("IgnoreVersion",       BOOL,     IgnoreVersion,        "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("KeepalivePeriod",     INTERVAL, KeepalivePeriod,      "5 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("Log",                 LINELIST, Logs,                 NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("LogLevel",            LINELIST_S, OldLogOptions,      NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("LogFile",             LINELIST_S, OldLogOptions,      NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   OBSOLETE("LinkPadding"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("ConnLimit",           UINT,     ConnLimit,            "1024"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("LogFile",             LINELIST_S, OldLogOptions,      NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("LogLevel",            LINELIST_S, OldLogOptions,      NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("LongLivedPorts",      CSV,      LongLivedPorts,       "21,22,706,1863,5050,5190,5222,5223,6667,8300,8888"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("MapAddress",          LINELIST, AddressMap,           NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("MaxAdvertisedBandwidth",MEMUNIT,MaxAdvertisedBandwidth,"128 TB"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("MaxCircuitDirtiness", INTERVAL, MaxCircuitDirtiness,  "10 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("MaxOnionsPending",    UINT,     MaxOnionsPending,     "100"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("MonthlyAccountingStart",UINT,   _MonthlyAccountingStart,"0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("AccountingMaxKB",     UINT,     _AccountingMaxKB,     "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("AccountingMax",       MEMUNIT,   AccountingMax,        "0 bytes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("Nickname",            STRING,   Nickname,             NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("MyFamily",            STRING,   MyFamily,             NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("NewCircuitPeriod",    INTERVAL, NewCircuitPeriod,     "30 seconds"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("MaxCircuitDirtiness", INTERVAL, MaxCircuitDirtiness,  "10 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("Nickname",            STRING,   Nickname,             NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("NoPublish",           BOOL,     NoPublish,            "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("NodeFamily",          LINELIST, NodeFamilies,         NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("NumCpus",             UINT,     NumCpus,              "1"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("ORPort",              UINT,     ORPort,               "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("NumHelperNodes",      UINT,     NumHelperNodes,       "3"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("ORBindAddress",       LINELIST, ORBindAddress,        NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("ORPort",              UINT,     ORPort,               "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("OutboundBindAddress", STRING,   OutboundBindAddress,  NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("PidFile",             STRING,   PidFile,              NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("LongLivedPorts",      CSV,      LongLivedPorts,       "21,22,706,1863,5050,5190,5222,5223,6667,8300,8888"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("PathlenCoinWeight",   DOUBLE,   PathlenCoinWeight,    "0.3"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("PidFile",             STRING,   PidFile,              NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("RecommendedVersions", LINELIST, RecommendedVersions,  NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("RedirectExit",        LINELIST, RedirectExit,         NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("RendExcludeNodes",    STRING,   RendExcludeNodes,     NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("RendNodes",           STRING,   RendNodes,            NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("RendPostPeriod",      INTERVAL, RendPostPeriod,       "20 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("RephistTrackTime",    INTERVAL, RephistTrackTime,     "24 hours"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   OBSOLETE("RouterFile"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("RunAsDaemon",         BOOL,     RunAsDaemon,          "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("RunTesting",          BOOL,     RunTesting,           "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("RecommendedVersions", LINELIST, RecommendedVersions,  NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("RendNodes",           STRING,   RendNodes,            NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("RendExcludeNodes",    STRING,   RendExcludeNodes,     NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("SafeLogging",         BOOL,     SafeLogging,          "1"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("ShutdownWaitLength",  INTERVAL, ShutdownWaitLength,   "30 seconds"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("SocksPort",           UINT,     SocksPort,            "9050"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("SocksBindAddress",    LINELIST, SocksBindAddress,     NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("SocksPolicy",         LINELIST, SocksPolicy,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  /** DOCDOC */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("StatusFetchPeriod",   INTERVAL, StatusFetchPeriod,    "0 seconds"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("SocksPort",           UINT,     SocksPort,            "9050"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("StatusFetchPeriod",   INTERVAL, StatusFetchPeriod,    "0 seconds"),  /** DOCDOC */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("StrictEntryNodes",    BOOL,     StrictEntryNodes,     "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("StrictExitNodes",     BOOL,     StrictExitNodes,      "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("SysLog",              LINELIST_S, OldLogOptions,      NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("TrackHostExits",      CSV,      TrackHostExits,       NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("TrackHostExitsExpire",INTERVAL, TrackHostExitsExpire, "30 minutes"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   OBSOLETE("TrafficShaping"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("User",                STRING,   User,                 NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("UseHelperNodes",      BOOL,     UseHelperNodes,       "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("NumHelperNodes",      UINT,     NumHelperNodes,       "3"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("User",                STRING,   User,                 NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("__LeaveStreamsUnattached", BOOL,LeaveStreamsUnattached, "0"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { NULL, CONFIG_TYPE_OBSOLETE, 0, NULL } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -192,19 +190,18 @@ static config_var_t _option_vars[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #define VAR(name,conftype,member,initvalue) \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { name, CONFIG_TYPE_ ## conftype, STRUCT_OFFSET(or_state_t, member), initvalue } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static config_var_t _state_vars[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("LastWritten",             ISOTIME,     LastWritten,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("AccountingIntervalStart", ISOTIME,  AccountingIntervalStart, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("AccountingBytesReadInterval", MEMUNIT, AccountingBytesReadInInterval,NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("AccountingBytesWrittenInInterval", MEMUNIT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       AccountingBytesWrittenInInterval, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("AccountingBytesReadInterval", MEMUNIT, AccountingBytesReadInInterval,NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("AccountingSecondsActive", INTERVAL,    AccountingSecondsActive, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("AccountingExpectedUsage", MEMUNIT,     AccountingExpectedUsage, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  VAR("HelperNodes",             LINELIST_V,  HelperNodes,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("AccountingIntervalStart", ISOTIME,  AccountingIntervalStart, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("AccountingSecondsActive", INTERVAL,    AccountingSecondsActive, NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HelperNode",              LINELIST_S,  HelperNodes,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HelperNodeDownSince",     LINELIST_S,  HelperNodes,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   VAR("HelperNodeUnlistedSince", LINELIST_S,  HelperNodes,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("HelperNodes",             LINELIST_V,  HelperNodes,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  VAR("LastWritten",             ISOTIME,     LastWritten,          NULL), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { NULL, CONFIG_TYPE_OBSOLETE, 0, NULL } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |