t?B.postMessage(void 0):A||(A=!0,a(U))},w=function(){P=null,I=!1,R=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var i=d,o=f;d=e,f=t.unstable_now();try{return n()}finally{d=i,f=o,r()}},t.unstable_next=function(e){switch(d){case 1:case 2:case 3:var n=3;break;default:n=d}var i=d,o=f;d=n,f=t.unstable_now();try{return e()}finally{d=i,f=o,r()}},t.unstable_scheduleCallback=function(e,i){var r=-1!==f?f:t.unstable_now();if("object"==typeof i&&null!==i&&"number"==typeof i.timeout)i=r+i.timeout;else switch(d){case 1:i=r+-1;break;case 2:i=r+250;break;case 5:i=r+1073741823;break;case 4:i=r+1e4;break;default:i=r+5e3}if(e={callback:e,priorityLevel:d,expirationTime:i,next:null,previous:null},null===u)u=e.next=e.previous=e,n();else{r=null;var o=u;do{if(o.expirationTime>i){r=o;break}o=o.next}while(o!==u);null===r?r=u:r===u&&(u=e,n()),i=r.previous,i.next=r.previous=e,e.next=r,e.previous=i}return e;
+},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)u=null;else{e===u&&(u=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=d;return function(){var i=d,o=f;d=n,f=t.unstable_now();try{return e.apply(this,arguments)}finally{d=i,f=o,r()}}},t.unstable_getCurrentPriorityLevel=function(){return d},t.unstable_shouldYield=function(){return!c&&(null!==u&&u.expirationTime. Can be set multiple times.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t}\n\t\t},\n\t\t\"core\": {\n\t\t\t\"section\": \"Bitcoin Core\",\n\t\t\t\"description\": \"Basic parameters regarding Bitcoin Core node operation.\",\n\t\t\t\"alertnotify\": {\n\t\t\t\t\"name\": \"Alert Notification\",\n\t\t\t\t\"description\": \"Execute command when an alert (or long fork) is received (%s in cmd is replaced by message)\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"blockfilterindex\": {\n\t\t\t\t\"name\": \"Block Filter Index\",\n\t\t\t\t\"description\": {\n\t\t\t\t\t\"0\": \"Disable compact filters.\",\n\t\t\t\t\t\"1\": \"Enable all compact filters.\",\n\t\t\t\t\t\"basic\": \"Basic filters\"\n\t\t\t\t},\n\t\t\t\t\"default\": \"0\",\n\t\t\t\t\"values\": [\n\t\t\t\t\t\"Disable [0]\",\n\t\t\t\t\t\"Enable All [1]\",\n\t\t\t\t\t\"Basic Filters [basic]\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"blocknotify\": {\n\t\t\t\t\"name\": \"Block Notification\",\n\t\t\t\t\"description\": \"Execute command when the best block changes (%s in cmd is replaced by block hash)\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"blocksdir\": {\n\t\t\t\t\"name\": \"Block Data Storage Location\",\n\t\t\t\t\"description\": \"Specify a non-default location to store blockchain data.\",\n\t\t\t\t\"default\": \"$BASE/blocks\"\n\t\t\t},\n\t\t\t\"blocksonly\": {\n\t\t\t\t\"name\": \"Blocks Only Mode\",\n\t\t\t\t\"description\": \"Only download and relay blocks - ignore unconfirmed transaction\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"assumevalid\": {\n\t\t\t\t\"name\": \"Assume Valid Chain History\",\n\t\t\t\t\"description\": \"Assume that this block hash and its ancestors are valid. Skip their script verification (performance boost.) Set to 0 to verify all blocks. We recommend leaving value blank.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"coinstatsindex\": {\n\t\t\t\t\"name\": \"Coin Stats Index\",\n\t\t\t\t\"description\": \"Maintain coinstats index used by the gettxoutsetinfo RPC.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"daemon\": {\n\t\t\t\t\"name\": \"Daemon Mode\",\n\t\t\t\t\"description\": \"Run in the background as a daemon and accept commands.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"daemonwait\": {\n\t\t\t\t\"name\": \"Daemon Wait Mode\",\n\t\t\t\t\"description\": \"Wait for initialization to be finished before exiting. This implies -daemon.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"datadir\": {\n\t\t\t\t\"name\": \"Data Storage Location\",\n\t\t\t\t\"description\": \"Specify a non-default location to store blockchain and other data.\",\n\t\t\t\t\"default\": \"$BASE\"\n\t\t\t},\n\t\t\t\"dbbatchsize\": {\n\t\t\t\t\"name\": \"DB Batch Size\",\n\t\t\t\t\"description\": \"Maximum database write batch size in bytes.\",\n\t\t\t\t\"default\": 16777216,\n\t\t\t\t\"min\": 1024\n\t\t\t},\n\t\t\t\"dbcache\": {\n\t\t\t\t\"name\": \"DB Cache Size\",\n\t\t\t\t\"description\": \"Set database cache size in MB; machines sync faster with a larger cache. Recommend setting to 4000 if RAM is available.\",\n\t\t\t\t\"default\": 450,\n\t\t\t\t\"min\": 4\n\t\t\t},\n\t\t\t\"includeconf\": {\n\t\t\t\t\"name\": \"Include Config File\",\n\t\t\t\t\"description\": \"Load additional configuration file, relative to the data directory.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"allowignoredconf\": {\n\t\t\t\t\"name\": \"Allow Ignored Config File\",\n\t\t\t\t\"description\": \"For backwards compatibility, treat an unused bitcoin.conf file in the datadir as a warning, not an error.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"loadblock\": {\n\t\t\t\t\"name\": \"Import Blocks From File\",\n\t\t\t\t\"description\": \"Imports blocks from external blk000??.dat file on startup. This option can be set multiple times with different file values.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"maxorphantx\": {\n\t\t\t\t\"name\": \"Max Orphan Transactions\",\n\t\t\t\t\"description\": \"Keep at most unconnectable transactions in memory.\",\n\t\t\t\t\"default\": 100,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"maxmempool\": {\n\t\t\t\t\"name\": \"Max Mempool Size\",\n\t\t\t\t\"description\": \"Keep the transaction memory pool below megabytes.\",\n\t\t\t\t\"default\": 300\n\t\t\t},\n\t\t\t\"mempoolexpiry\": {\n\t\t\t\t\"name\": \"Mempool Expiration\",\n\t\t\t\t\"description\": \"Do not keep transactions in the mempool longer than hours.\",\n\t\t\t\t\"default\": 336,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"minimumchainwork\": {\n\t\t\t\t\"name\": \"Minimum Chain Work\",\n\t\t\t\t\"description\": \"The (hex value) minimum amount of cumulative proof of work required.\",\n\t\t\t\t\"default\": \"0x000000000000000000000000000000000000000000f91c579d57cad4bc5278cc\"\n\t\t\t},\n\t\t\t\"persistmempool\": {\n\t\t\t\t\"name\": \"Persist Mempool\",\n\t\t\t\t\"description\": \"Save the mempool on shutdown and load on restart.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"persistmempoolv1\": {\n\t\t\t\t\"name\": \"Legacy Persist Mempool\",\n\t\t\t\t\"description\": \"Use the pre-v27 format to save the mempool on shutdown and load on restart.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"blockreconstructionextratxn\": {\n\t\t\t\t\"name\": \"Block Reconstruction Transactions\",\n\t\t\t\t\"description\": \"Extra transactions to keep in memory for compact block reconstructions.\",\n\t\t\t\t\"default\": 100\n\t\t\t},\n\t\t\t\"par\": {\n\t\t\t\t\"name\": \"Script Verification Parallelization\",\n\t\t\t\t\"description\": \"Set the number of script verification threads. (1 to CPU_CORES, 0 = automatic, less than 0 = leave that many cores free).\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"pid\": {\n\t\t\t\t\"name\": \"PID file\",\n\t\t\t\t\"description\": \"Specify process ID file name. Ignored for Windows.\",\n\t\t\t\t\"default\": \"bitcoind.pid\"\n\t\t\t},\n\t\t\t\"prune\": {\n\t\t\t\t\"name\": \"Prune Old Blocks\",\n\t\t\t\t\"description\": \"Reduce storage requirements by only storing most recent N MiB of block. This mode is incompatible with -txindex and -coinstatsindex. WARNING: Reverting this setting requires re-downloading the entire blockchain. (default: 0 = disable pruning blocks, 1 = allow manual pruning via RPC, greater than 550 = automatically prune blocks to stay under target size in MiB).\",\n\t\t\t\t\"default\": 0,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"reindex-chainstate\": {\n\t\t\t\t\"name\": \"Reindex Chainstate\",\n\t\t\t\t\"description\": \"Reindex chain state from the currently indexed blocks. WARNING: very slow!\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"reindex\": {\n\t\t\t\t\"name\": \"Reindex\",\n\t\t\t\t\"description\": \"Rebuild chain state and block index from the blk*.dat files on disk. WARNING: very slow!\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"settings\": {\n\t\t\t\t\"name\": \"Settings Data File\",\n\t\t\t\t\"description\": \"Specify path to dynamic settings data file. Can be disabled with -nosettings. File is written at runtime and not meant to be edited by users. Relative paths will be prefixed by datadir location.\",\n\t\t\t\t\"default\": \"settings.json\"\n\t\t\t},\n\t\t\t\"shutdownnotify\": {\n\t\t\t\t\"name\": \"Shutdown Notification\",\n\t\t\t\t\"description\": \"Execute command immediately before beginning shutdown.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"startupnotify\": {\n\t\t\t\t\"name\": \"Startup Notification\",\n\t\t\t\t\"description\": \"Execute command on startup.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"txindex\": {\n\t\t\t\t\"name\": \"Index Transactions\",\n\t\t\t\t\"description\": \"Maintain a full transaction index, used by the getrawtransaction rpc call.\",\n\t\t\t\t\"default\": 0\n\t\t\t}\n\t\t},\n\t\t\"debug\": {\n\t\t\t\"section\": \"Debugging & Testing\",\n\t\t\t\"description\": \"Features that help developers who are testing changes to Bitcoin Core.\",\n\t\t\t\"uacomment\": {\n\t\t\t\t\"name\": \"User Agent Comment\",\n\t\t\t\t\"description\": \"Append comment to the user agent string.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"acceptstalefeeestimates\": {\n\t\t\t\t\"name\": \"Accept Stale Fee Estimates\",\n\t\t\t\t\"description\": \"Read fee estimates even if they are over 60 hours old. Regtest only.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"addrmantest\": {\n\t\t\t\t\"name\": \"Address Manager Test\",\n\t\t\t\t\"description\": \"Allows you to test address relay on localhost.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"capturemessages\": {\n\t\t\t\t\"name\": \"Capture Messages\",\n\t\t\t\t\"description\": \"Capture all P2P messages to disk.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"checkblocks\": {\n\t\t\t\t\"name\": \"Check Blocks\",\n\t\t\t\t\"description\": \"How many recent blocks to check at startup. (0 == check all blocks which is very slow!)\",\n\t\t\t\t\"default\": 6,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"checklevel\": {\n\t\t\t\t\"name\": \"Check Block Level\",\n\t\t\t\t\"description\": \"How thorough the block verification of -checkblocks is (0-4).\",\n\t\t\t\t\"default\": 3,\n\t\t\t\t\"min\": 0,\n\t\t\t\t\"max\": 4\n\t\t\t},\n\t\t\t\"checkaddrman\": {\n\t\t\t\t\"name\": \"Check Address Manager\",\n\t\t\t\t\"description\": \"Run addrman consistency checks every operations.\",\n\t\t\t\t\"default\": 0,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"checkmempool\": {\n\t\t\t\t\"name\": \"Check Mempool\",\n\t\t\t\t\"description\": \"Run mempool consistency checks every transactions.\",\n\t\t\t\t\"default\": 0,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"checkpoints\": {\n\t\t\t\t\"name\": \"Enable Checkpoints\",\n\t\t\t\t\"description\": \"Disable expensive verification for known chain history.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"dbcrashratio\": {\n\t\t\t\t\"name\": \"DB Crash Ratio\",\n\t\t\t\t\"description\": \"Randomly crash while writing data at a given rate between 0 and 1.\",\n\t\t\t\t\"default\": 0,\n\t\t\t\t\"min\": 0,\n\t\t\t\t\"max\": 1\n\t\t\t},\n\t\t\t\"fastprune\": {\n\t\t\t\t\"name\": \"Fast Prune\",\n\t\t\t\t\"description\": \"Use smaller block files and lower minimum prune height for testing purposes.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"stopafterblockimport\": {\n\t\t\t\t\"name\": \"Stop After Block Import\",\n\t\t\t\t\"description\": \"Stop running after importing blocks from disk.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"stopatheight\": {\n\t\t\t\t\"name\": \"Stop At Height\",\n\t\t\t\t\"description\": \"Stop running after reaching the given height in the main chain.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"testactivationheight\": {\n\t\t\t\t\"name\": \"Test Activation Height\",\n\t\t\t\t\"description\": \"Set the activation height of of 'name' (segwit, bip34, dersig, cltv, csv) via 'name@height' (regtest-only).\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"limitancestorcount\": {\n\t\t\t\t\"name\": \"Limit Transaction Ancestor Count\",\n\t\t\t\t\"description\": \"Do not accept transactions if number of in-mempool ancestors is or more.\",\n\t\t\t\t\"default\": 25,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"limitancestorsize\": {\n\t\t\t\t\"name\": \"Limit Transaction Ancestor Size\",\n\t\t\t\t\"description\": \"Do not accept transactions whose size with all in-mempool ancestors exceeds kilobytes.\",\n\t\t\t\t\"default\": 101,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"limitdescendantcount\": {\n\t\t\t\t\"name\": \"Limit Transaction Descendant Count\",\n\t\t\t\t\"description\": \"Do not accept transactions if any ancestor would have or more in-mempool descendants.\",\n\t\t\t\t\"default\": 25,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"limitdescendantsize\": {\n\t\t\t\t\"name\": \"Limit Transaction Descendant Size\",\n\t\t\t\t\"description\": \"Do not accept transactions whose size with all in-mempool descendants exceeds kilobytes.\",\n\t\t\t\t\"default\": 101,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"debug\": {\n\t\t\t\t\"name\": \"Debug Logging\",\n\t\t\t\t\"description\": {\n\t\t\t\t\t\"0\": \"Disable debug logging.\",\n\t\t\t\t\t\"1\": \"Enable debug logging for all categories.\",\n\t\t\t\t\t\"addrman\": \"Enable address manager logging.\",\n\t\t\t\t\t\"alert\": \"Enable alert logging\",\n\t\t\t\t\t\"bench\": \"Enable benchmark logging\",\n\t\t\t\t\t\"cmpctblock\": \"Enable compact block logging\",\n\t\t\t\t\t\"coindb\": \"Enable coin database logging\",\n\t\t\t\t\t\"walletdb\": \"Enable wallet database logging\",\n\t\t\t\t\t\"http\": \"Enable HTTP logging\",\n\t\t\t\t\t\"leveldb\": \"Enable leveldb logging\",\n\t\t\t\t\t\"libevent\": \"Enable libevent logging\",\n\t\t\t\t\t\"lock\": \"Enable lock logging\",\n\t\t\t\t\t\"mempool\": \"Enable mempool logging\",\n\t\t\t\t\t\"mempoolrej\": \"Enable mempool rejection logging\",\n\t\t\t\t\t\"net\": \"Enable network logging\",\n\t\t\t\t\t\"proxy\": \"Enable proxy logging\",\n\t\t\t\t\t\"prune\": \"Enable pruning logging\",\n\t\t\t\t\t\"rand\": \"Enable randomness logging\",\n\t\t\t\t\t\"reindex\": \"Enable reindexing logging\",\n\t\t\t\t\t\"rpc\": \"Enable RPC logging\",\n\t\t\t\t\t\"selectcoins\": \"Enable coin selection logging\",\n\t\t\t\t\t\"tor\": \"Enable Tor logging\",\n\t\t\t\t\t\"zmq\": \"Enable ZeroMQ logging\"\n\t\t\t\t},\n\t\t\t\t\"default\": \"0\",\n\t\t\t\t\"values\": [\n\t\t\t\t\t\"Disable [0]\",\n\t\t\t\t\t\"Enable All [1]\",\n\t\t\t\t\t\"Address Manager [addrman]\",\n\t\t\t\t\t\"Alerts [alert]\",\n\t\t\t\t\t\"Benchmarking [bench]\",\n\t\t\t\t\t\"Compact Blocks [cmpctblock]\",\n\t\t\t\t\t\"CoinDB [coindb]\",\n\t\t\t\t\t\"Database [db]\",\n\t\t\t\t\t\"HTTP [http]\",\n\t\t\t\t\t\"LevelDB [leveldb]\",\n\t\t\t\t\t\"LibEvent [libevent]\",\n\t\t\t\t\t\"Locking [lock]\",\n\t\t\t\t\t\"Mempool [mempool]\",\n\t\t\t\t\t\"Mempool Rejection [mempoolrej]\",\n\t\t\t\t\t\"Networking [net]\",\n\t\t\t\t\t\"Proxy [proxy]\",\n\t\t\t\t\t\"Pruning [prune]\",\n\t\t\t\t\t\"Random [rand]\",\n\t\t\t\t\t\"Reinding [reindex]\",\n\t\t\t\t\t\"RPC [rpc]\",\n\t\t\t\t\t\"Coin Selection [selectcoins]\",\n\t\t\t\t\t\"Tor [tor]\",\n\t\t\t\t\t\"ZeroMQ [zmq]\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"debugexclude\": {\n\t\t\t\t\"name\": \"Exclude Debug Logging\",\n\t\t\t\t\"description\": {\n\t\t\t\t\t\"0\": \"Don't exclude any logging.\",\n\t\t\t\t\t\"addrman\": \"Exclude address manager logging.\",\n\t\t\t\t\t\"alert\": \"Exclude alert logging\",\n\t\t\t\t\t\"bench\": \"Exclude benchmark logging\",\n\t\t\t\t\t\"cmpctblock\": \"Exclude compact block logging\",\n\t\t\t\t\t\"coindb\": \"Exclude coin database logging\",\n\t\t\t\t\t\"db\": \"Exclude database logging\",\n\t\t\t\t\t\"http\": \"Exclude HTTP logging\",\n\t\t\t\t\t\"leveldb\": \"Exclude leveldb logging\",\n\t\t\t\t\t\"libevent\": \"Exclude libevent logging\",\n\t\t\t\t\t\"lock\": \"Exclude lock logging\",\n\t\t\t\t\t\"mempool\": \"Exclude mempool logging\",\n\t\t\t\t\t\"mempoolrej\": \"Exclude mempool rejection logging\",\n\t\t\t\t\t\"net\": \"Exclude network logging\",\n\t\t\t\t\t\"proxy\": \"Exclude proxy logging\",\n\t\t\t\t\t\"prune\": \"Exclude pruning logging\",\n\t\t\t\t\t\"rand\": \"Exclude randomness logging\",\n\t\t\t\t\t\"reindex\": \"Exclude reindexing logging\",\n\t\t\t\t\t\"rpc\": \"Exclude RPC logging\",\n\t\t\t\t\t\"selectcoins\": \"Exclude coin selection logging\",\n\t\t\t\t\t\"tor\": \"Exclude Tor logging\",\n\t\t\t\t\t\"zmq\": \"Exclude ZeroMQ logging\"\n\t\t\t\t},\n\t\t\t\t\"default\": \"0\",\n\t\t\t\t\"values\": [\n\t\t\t\t\t\"No Exclusions [0]\",\n\t\t\t\t\t\"Address Manager [addrman]\",\n\t\t\t\t\t\"Alerts [alert]\",\n\t\t\t\t\t\"Benchmarking [bench]\",\n\t\t\t\t\t\"Compact Blocks [cmpctblock]\",\n\t\t\t\t\t\"CoinDB [coindb]\",\n\t\t\t\t\t\"Database [db]\",\n\t\t\t\t\t\"HTTP [http]\",\n\t\t\t\t\t\"LevelDB [leveldb]\",\n\t\t\t\t\t\"LibEvent [libevent]\",\n\t\t\t\t\t\"Locking [lock]\",\n\t\t\t\t\t\"Mempool [mempool]\",\n\t\t\t\t\t\"Mempool Rejection [mempoolrej]\",\n\t\t\t\t\t\"Networking [net]\",\n\t\t\t\t\t\"Proxy [proxy]\",\n\t\t\t\t\t\"Pruning [prune]\",\n\t\t\t\t\t\"Random [rand]\",\n\t\t\t\t\t\"Reinding [reindex]\",\n\t\t\t\t\t\"RPC [rpc]\",\n\t\t\t\t\t\"Coin Selection [selectcoins]\",\n\t\t\t\t\t\"Tor [tor]\",\n\t\t\t\t\t\"ZeroMQ [zmq]\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"debuglogfile\": {\n\t\t\t\t\"name\": \"Debug Log File\",\n\t\t\t\t\"description\": \"Location of the debug log\",\n\t\t\t\t\"default\": \"$BASE/debug.log\"\n\t\t\t},\n\t\t\t\"logips\": {\n\t\t\t\t\"name\": \"Log IP Addresses\",\n\t\t\t\t\"description\": \"Log IP Addresses in debug output.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"loglevel\": {\n\t\t\t\t\"name\": \"Log Level\",\n\t\t\t\t\"description\": \"Set the global or per-category severity level for logging in the format of either or :. Level values may be: info, debug, or trace. Warning and error levels are always logged. If : is supplied, the setting will override the global one and may be specified multiple times. See 'debug' config for allowed category values.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"loglevelalways\": {\n\t\t\t\t\"name\": \"Prepend Log Level\",\n\t\t\t\t\"description\": \"Always prepend the category and level to each log message.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"logsourcelocations\": {\n\t\t\t\t\"name\": \"Log Source Locations\",\n\t\t\t\t\"description\": \"Prepend debug output with name of the originating source location (source file, line number and function name).\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"logthreadnames\": {\n\t\t\t\t\"name\": \"Log Thread Names\",\n\t\t\t\t\"description\": \"Prepend debug output with name of the originating thread (only available on platforms supporting thread_local).\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"logtimestamps\": {\n\t\t\t\t\"name\": \"Log Timestamps\",\n\t\t\t\t\"description\": \"Log timestamps in debug output.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"logtimemicros\": {\n\t\t\t\t\"name\": \"Log Precise Timestamps\",\n\t\t\t\t\"description\": \"Log timestamps with microsecond precision.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"mocktime\": {\n\t\t\t\t\"name\": \"Mock Timestamps\",\n\t\t\t\t\"description\": \"Replace actual time with seconds since epoch.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"maxsigcachesize\": {\n\t\t\t\t\"name\": \"Max Signature Cache Size\",\n\t\t\t\t\"description\": \"Limit size of signature cache to MiB.\",\n\t\t\t\t\"default\": 32,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"maxtipage\": {\n\t\t\t\t\"name\": \"Max Age of Chain Tip\",\n\t\t\t\t\"description\": \"Maximum tip age in seconds to consider node in initial block download.\",\n\t\t\t\t\"default\": 86400,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"maxtxfee\": {\n\t\t\t\t\"name\": \"Max Transaction Fee\",\n\t\t\t\t\"description\": \"Maximum total fees (in BTC) to use in a single wallet transaction or raw transaction; setting this too low may abort large transactions.\",\n\t\t\t\t\"default\": 0.1,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"printtoconsole\": {\n\t\t\t\t\"name\": \"Output to Console\",\n\t\t\t\t\"description\": \"Send trace/debug info to console instead of debug.log.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"printpriority\": {\n\t\t\t\t\"name\": \"Print Priority\",\n\t\t\t\t\"description\": \"Log transaction fee per kB when mining blocks.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"promiscuousmempoolflags\": {\n\t\t\t\t\"name\": \"Script Verification Flags\",\n\t\t\t\t\"description\": \"Integer representing the script verification flags to enable (all ORed together) - flags can be found in interpreter.h.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"shrinkdebugfile\": {\n\t\t\t\t\"name\": \"Shrink Debug Log File\",\n\t\t\t\t\"description\": \"Shrink debug.log file on client startup.\",\n\t\t\t\t\"default\": 1\n\t\t\t}\n\t\t},\n\t\t\"relay\": {\n\t\t\t\"section\": \"Transaction Relay\",\n\t\t\t\"description\": \"Fine tune settings for what transactions your node will relay to peers.\",\n\t\t\t\"acceptnonstdtxn\": {\n\t\t\t\t\"name\": \"Accept Non-Standard Transactions\",\n\t\t\t\t\"description\": \"Relay and mine non-standard transactions (testnet/regtest only.)\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"incrementalrelayfee\": {\n\t\t\t\t\"name\": \"Incremental Relay Fee\",\n\t\t\t\t\"description\": \"Fee rate (in BTC/kB) used to define cost of relay, used for mempool limiting and BIP 125 replacement.\",\n\t\t\t\t\"default\": 0.00001,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"dustrelayfee\": {\n\t\t\t\t\"name\": \"Dust Relay Fee\",\n\t\t\t\t\"description\": \"Fee rate (in BTC/kB) used to defined dust, the value of an output such that it will cost about 1/3 of its value in fees at this fee rate to spend it.\",\n\t\t\t\t\"default\": 0.00001,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"bytespersigop\": {\n\t\t\t\t\"name\": \"Bytes Per Signature Operation\",\n\t\t\t\t\"description\": \"Equivalent bytes per sigop in transactions for relay and mining.\",\n\t\t\t\t\"default\": 20,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"datacarrier\": {\n\t\t\t\t\"name\": \"Relay OP_RETURN Transactions\",\n\t\t\t\t\"description\": \"Relay transactions with OP_RETURN outputs.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"datacarriersize\": {\n\t\t\t\t\"name\": \"Max OP_RETURN Size\",\n\t\t\t\t\"description\": \"Maximum size of data in OP_RETURN outputs we relay and mine.\",\n\t\t\t\t\"default\": 83,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"mempoolfullrbf\": {\n\t\t\t\t\"name\": \"Mempool Full RBF\",\n\t\t\t\t\"description\": \"Accept transaction replace-by-fee without requiring replaceability signaling.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"permitbaremultisig\": {\n\t\t\t\t\"name\": \"Permit Bare Multisig\",\n\t\t\t\t\"description\": \"Relay non-P2SH multisig transactions.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"minrelaytxfee\": {\n\t\t\t\t\"name\": \"Min Transaction Relay Fee\",\n\t\t\t\t\"description\": \"Fee rates (in BTC/kB) smaller than this are considered zero fee for relaying, mining and transaction creation.\",\n\t\t\t\t\"default\": 0.00001,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"whitelistrelay\": {\n\t\t\t\t\"name\": \"Whitelist Relay\",\n\t\t\t\t\"description\": \"Accept relayed transactions received from whitelisted peers even when not relaying transactions.\",\n\t\t\t\t\"default\": 1\n\t\t\t}\n\t\t},\n\t\t\"network\": {\n\t\t\t\"section\": \"Networking\",\n\t\t\t\"description\": \"Options for how your node interacts with other peers on the network.\",\n\t\t\t\"addnode\": {\n\t\t\t\t\"name\": \"Connect to Peer\",\n\t\t\t\t\"description\": \"Add a node IP address to connect to and attempt to keep the connection open. This option can be set multiple times.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"asmap\": {\n\t\t\t\t\"name\": \"ASN Mapping\",\n\t\t\t\t\"description\": \"Specify asn mapping used for bucketing of the peers. Relative paths will be prefixed by the net-specific datadir location.\",\n\t\t\t\t\"default\": \"$BASE/ip_asn.map\"\n\t\t\t},\n\t\t\t\"bantime\": {\n\t\t\t\t\"name\": \"Peer Ban Time\",\n\t\t\t\t\"description\": \"Number of seconds to keep misbehaving peers from reconnecting.\",\n\t\t\t\t\"default\": 86400,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"bind\": {\n\t\t\t\t\"name\": \"Bind to IP Address\",\n\t\t\t\t\"description\": \"Bind to given address and always listen on it. (default: 0.0.0.0). Use [host]:port notation for IPv6. Append =onion to tag any incoming connections to that address and port as incoming Tor connections\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"cjdnsreachable\": {\n\t\t\t\t\"name\": \"CJDNS Reachable\",\n\t\t\t\t\"description\": \"If set, then this host is configured for CJDNS (connecting to fc00::/8 addresses would lead us to the CJDNS network)\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"connect\": {\n\t\t\t\t\"name\": \"Only Connect to Peer\",\n\t\t\t\t\"description\": \"Connect only to the specified node(s); can be set multiple times. Set to 0 to disable automatic connections.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"discover\": {\n\t\t\t\t\"name\": \"Discover IP Address\",\n\t\t\t\t\"description\": \"Discover own IP addresses. If disabled, should be used with -externalip or -proxy.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"dns\": {\n\t\t\t\t\"name\": \"Allow DNS Lookups\",\n\t\t\t\t\"description\": \"Allow DNS lookups for -addnode, -seednode and -connect values.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"dnsseed\": {\n\t\t\t\t\"name\": \"Use DNS Seed\",\n\t\t\t\t\"description\": \"Query for peer addresses via DNS lookup, if low on addresses.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"externalip\": {\n\t\t\t\t\"name\": \"External IP Address\",\n\t\t\t\t\"description\": \"Specify your own public IP address.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"fixedseeds\": {\n\t\t\t\t\"name\": \"Use Fixed Seeds\",\n\t\t\t\t\"description\": \"Allow fixed seeds if DNS seeds don't provide peers.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"forcednsseed\": {\n\t\t\t\t\"name\": \"Force DNS Seed\",\n\t\t\t\t\"description\": \"Always query for peer addresses via DNS lookup.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"i2pacceptincoming\": {\n\t\t\t\t\"name\": \"Accept Incoming I2P Connections\",\n\t\t\t\t\"description\": \"If set and -i2psam is also set then incoming I2P connections are accepted via the SAM proxy. If this is not set but -i2psam is set then only outgoing connections will be made to the I2P network. Ignored if -i2psam is not set. Listening for incoming I2P connections is done through the SAM proxy, not by binding to a local address and port.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"i2psam\": {\n\t\t\t\t\"name\": \"I2P SAM Proxy\",\n\t\t\t\t\"description\": \"I2P SAM proxy to reach I2P peers and accept I2P connections.\"\n\t\t\t},\n\t\t\t\"listen\": {\n\t\t\t\t\"name\": \"Listen for Incoming Connections\",\n\t\t\t\t\"description\": \"Accept incoming connections from peers.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"listenonion\": {\n\t\t\t\t\"name\": \"Tor Hidden Service\",\n\t\t\t\t\"description\": \"Automatically create Tor hidden service.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"maxconnections\": {\n\t\t\t\t\"name\": \"Max Peer Connections\",\n\t\t\t\t\"description\": \"Maintain at most N connections to peers.\",\n\t\t\t\t\"default\": 125,\n\t\t\t\t\"min\": 0,\n\t\t\t\t\"max\": 250\n\t\t\t},\n\t\t\t\"maxreceivebuffer\": {\n\t\t\t\t\"name\": \"Max Receive Buffer\",\n\t\t\t\t\"description\": \"Maximum per-connection receive buffer (KiB).\",\n\t\t\t\t\"default\": 5000,\n\t\t\t\t\"min\": 1000\n\t\t\t},\n\t\t\t\"maxsendbuffer\": {\n\t\t\t\t\"name\": \"Max Send Buffer\",\n\t\t\t\t\"description\": \"Maximum per-connection send buffer (KiB).\",\n\t\t\t\t\"default\": 1000,\n\t\t\t\t\"min\": 100\n\t\t\t},\n\t\t\t\"maxtimeadjustment\": {\n\t\t\t\t\"name\": \"Max Time Adjustment\",\n\t\t\t\t\"description\": \"Maximum allowed median peer time offset adjustment in seconds. Local perspective of time may be influenced by peers forward or backward by this amount.\",\n\t\t\t\t\"default\": 4200,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"natpmp\": {\n\t\t\t\t\"name\": \"NAT Port Mapping Protocol\",\n\t\t\t\t\"description\": \"Use NAT-PMP to map the listening port.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"networkactive\": {\n\t\t\t\t\"name\": \"Network Active\",\n\t\t\t\t\"description\": \"Enable all P2P network activity.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"onion\": {\n\t\t\t\t\"name\": \"Tor Proxy\",\n\t\t\t\t\"description\": \"Use separate SOCKS5 proxy to reach peers via Tor hidden services.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"onlynet\": {\n\t\t\t\t\"name\": \"Only Use Specific Network\",\n\t\t\t\t\"description\": {\n\t\t\t\t\t\"any\": \"Use every available network\",\n\t\t\t\t\t\"ipv4\": \"Only connect to peers via IPV4\",\n\t\t\t\t\t\"ipv6\": \"Only connect to peers via IPV6.\",\n\t\t\t\t\t\"onion\": \"Only connect to peers via Tor.\"\n\t\t\t\t},\n\t\t\t\t\"default\": \"any\",\n\t\t\t\t\"values\": [\n\t\t\t\t\t\"Any [any]\",\n\t\t\t\t\t\"IPV4 [ipv4]\",\n\t\t\t\t\t\"IPV6 [ipv6]\",\n\t\t\t\t\t\"Tor [onion]\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"v2transport\": {\n\t\t\t\t\"name\": \"Support v2 Transport\",\n\t\t\t\t\"description\": \"Experimental support for the v2 transport protocol defined in BIP324.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"peerblockfilters\": {\n\t\t\t\t\"name\": \"Permit Peer Block Filters\",\n\t\t\t\t\"description\": \"Serve compact block filters to peers per BIP 157. NOTE: enabling this will force blockfilterindex on\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"peerbloomfilters\": {\n\t\t\t\t\"name\": \"Permit Peer Bloom Filters\",\n\t\t\t\t\"description\": \"Support filtering of blocks and transactions with bloom filters.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"peertimeout\": {\n\t\t\t\t\"name\": \"Peer Timeout\",\n\t\t\t\t\"description\": \"Specify p2p connection timeout in seconds. The amount of time a peer may be inactive before the connection to it is dropped.\",\n\t\t\t\t\"default\": 60,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"port\": {\n\t\t\t\t\"name\": \"Listen Port\",\n\t\t\t\t\"description\": \"Listen for incoming connections on non-default port.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"proxy\": {\n\t\t\t\t\"name\": \"Proxy Connection\",\n\t\t\t\t\"description\": \"Connect through SOCKS5 proxy.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"proxyrandomize\": {\n\t\t\t\t\"name\": \"Randomize Proxy\",\n\t\t\t\t\"description\": \"Randomize credentials for every proxy connection. This enables Tor stream isolation.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"seednode\": {\n\t\t\t\t\"name\": \"Seed Node\",\n\t\t\t\t\"description\": \"Connect to a node (IP address) to retrieve peer addresses, then disconnect.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"timeout\": {\n\t\t\t\t\"name\": \"Connection Timeout\",\n\t\t\t\t\"description\": \"Initial peer connection timeout in milliseconds.\",\n\t\t\t\t\"default\": 5000,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"torcontrol\": {\n\t\t\t\t\"name\": \"Tor Control\",\n\t\t\t\t\"description\": \"Tor control to use if onion listening enabled.\",\n\t\t\t\t\"default\": \"127.0.0.1:9051\"\n\t\t\t},\n\t\t\t\"torpassword\": {\n\t\t\t\t\"name\": \"Tor Control Password\",\n\t\t\t\t\"description\": \"Tor control port password.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"txreconciliation\": {\n\t\t\t\t\"name\": \"Transaction Reconciliation\",\n\t\t\t\t\"description\": \"Enable transaction reconciliations per BIP 330.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"upnp\": {\n\t\t\t\t\"name\": \"Universal Plug 'n Play\",\n\t\t\t\t\"description\": \"Use UPnP to map the listening port.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"whitebind\": {\n\t\t\t\t\"name\": \"Whitelist Bound IP Address\",\n\t\t\t\t\"description\": \"Bind to given address and whitelist peers connecting to it. Use [host]:port notation for IPv6. Use [permissions]address for permissions. Allowed permissions are bloomfilter, noban, forcerelay, relay, and mempool. Specify multiple permissions separated by commas (default: noban,mempool,relay). Can be specified multiple times.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"whitelist\": {\n\t\t\t\t\"name\": \"Whitelist Peer\",\n\t\t\t\t\"description\": \"Whitelist peers connecting from the given IP address (e.g. 1.2.3.4) or CIDR notated network (e.g. 1.2.3.0/24). Use [permissions]address for permissions. Uses same permissions as Whitelist Bound IP Address. Can be specified multiple times. Whitelisted peers cannot be DoS banned and their transactions are always relayed, even if they are already in the mempool. Useful for a gateway node.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"maxuploadtarget\": {\n\t\t\t\t\"name\": \"Max Upload Target\",\n\t\t\t\t\"description\": \"Tries to keep outbound traffic under the given target (in MiB per 24h), 0 = no limit.\",\n\t\t\t\t\"default\": 0,\n\t\t\t\t\"min\": 0\n\t\t\t}\n\t\t},\n\t\t\"mining\": {\n\t\t\t\"section\": \"Mining\",\n\t\t\t\"description\": \"Configure attributes of blocks that can be mined by this node.\",\n\t\t\t\"blockmaxweight\": {\n\t\t\t\t\"name\": \"Max Block Weight\",\n\t\t\t\t\"description\": \"Set maximum BIP141 block weight.\",\n\t\t\t\t\"default\": 3000000\n\t\t\t},\n\t\t\t\"blockmintxfee\": {\n\t\t\t\t\"name\": \"Block Min Transaction Fee\",\n\t\t\t\t\"description\": \"Set lowest fee rate (in BTC/kB) for transactions to be included in block creation.\",\n\t\t\t\t\"default\": 0.00001,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"blockversion\": {\n\t\t\t\t\"name\": \"Block Version\",\n\t\t\t\t\"description\": \"Override block version to test forking scenarios.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t}\n\t\t},\n\t\t\"rpc\": {\n\t\t\t\"section\": \"RPC API\",\n\t\t\t\"description\": \"Configure security and performance options for accessing the node's RPC interface.\",\n\t\t\t\"deprecatedrpc\": {\n\t\t\t\t\"name\": \"Enable Deprecated RPC Commands\",\n\t\t\t\t\"description\": {\n\t\t\t\t\t\"accounts\": \"Enable Accounts RPC\",\n\t\t\t\t\t\"addwitnessaddress\": \"Enable Add Witness Address RPC\",\n\t\t\t\t\t\"signrawtransaction\": \"Enable Sign Raw Transaction RPC\",\n\t\t\t\t\t\"validateaddress\": \"Enable Validate Address RPC\"\n\t\t\t\t},\n\t\t\t\t\"default\": [],\n\t\t\t\t\"values\": [\n\t\t\t\t\t\"Accounts [accounts]\",\n\t\t\t\t\t\"Add Witness Address [addwitnessaddress]\",\n\t\t\t\t\t\"Sign Raw Transaction [signrawtransaction]\",\n\t\t\t\t\t\"Validate Address [validateaddress]\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"server\": {\n\t\t\t\t\"name\": \"Enable RPC Server\",\n\t\t\t\t\"description\": \"Accept command line and JSON-RPC commands.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"rest\": {\n\t\t\t\t\"name\": \"Enable REST API\",\n\t\t\t\t\"description\": \"Accept public REST requests.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"rpcbind\": {\n\t\t\t\t\"name\": \"Bind RPC Address\",\n\t\t\t\t\"description\": \"Bind to given address to listen for JSON-RPC connections. This option is ignored unless -rpcallowip is also passed. Port is optional and overrides -rpcport. Use [host]:port notation for IPv6. This option can be specified multiple times. (default: 127.0.0.1 and ::1 i.e., localhost)\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"rpcdoccheck\": {\n\t\t\t\t\"name\": \"RPC Documentation Check\",\n\t\t\t\t\"description\": \"Throw a non-fatal error at runtime if the documentation for an RPC is incorrect.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"rpccookiefile\": {\n\t\t\t\t\"name\": \"RPC Cookie Directory\",\n\t\t\t\t\"description\": \"Location of the RPC auth cookie\",\n\t\t\t\t\"default\": \".cookie\"\n\t\t\t},\n\t\t\t\"rpcauth\": {\n\t\t\t\t\"name\": \"RPC Auth\",\n\t\t\t\t\"description\": \"Username and hashed password for JSON-RPC connections. The field comes in the format: :$. RPC clients connect using rpcuser=/rpcpassword= arguments. You can generate this value at https://jlopp.github.io/bitcoin-core-rpc-auth-generator/. This option can be specified multiple times.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"rpcport\": {\n\t\t\t\t\"name\": \"RPC Port\",\n\t\t\t\t\"description\": \"Listen for JSON-RPC connections on this port\",\n\t\t\t\t\"default\": 8332\n\t\t\t},\n\t\t\t\"rpcallowip\": {\n\t\t\t\t\"name\": \"RPC Allow IP Address\",\n\t\t\t\t\"description\": \"Allow JSON-RPC connections from specified source. Valid for are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"rpcwhitelistdefault\": {\n\t\t\t\t\"name\": \"RPC Whitelist Default\",\n\t\t\t\t\"description\": \"Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault is set to 0, if any -rpcwhitelist is set, the rpc server acts as if all rpc users are subject to empty-unless-otherwise-specified whitelists. If rpcwhitelistdefault is set to 1 and no -rpcwhitelist is set, rpc server acts as if all rpc users are subject to empty whitelists.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"rpcwhitelist\": {\n\t\t\t\t\"name\": \"RPC Whitelist\",\n\t\t\t\t\"description\": \"Set a whitelist to filter incoming RPC calls for a specific user. The field comes in the format: :,,...,. If multiple whitelists are set for a given user, they are set-intersected.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"rpcthreads\": {\n\t\t\t\t\"name\": \"RPC Threads\",\n\t\t\t\t\"description\": \"Set the number of threads to service RPC calls\",\n\t\t\t\t\"default\": 4,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"rpcworkqueue\": {\n\t\t\t\t\"name\": \"RPC Work Queue Size\",\n\t\t\t\t\"description\": \"Set the depth of the work queue to service RPC calls\",\n\t\t\t\t\"default\": 16,\n\t\t\t\t\"min\": 1\n\t\t\t},\n\t\t\t\"rpcservertimeout\": {\n\t\t\t\t\"name\": \"RPC Timeout\",\n\t\t\t\t\"description\": \"Number of seconds after which an uncompleted RPC call will time out\",\n\t\t\t\t\"default\": 30,\n\t\t\t\t\"min\": 1\n\t\t\t}\n\t\t},\n\t\t\"wallet\": {\n\t\t\t\"section\": \"Wallet\",\n\t\t\t\"description\": \"Configure behavior of the node's wallet.\",\n\t\t\t\"addresstype\": {\n\t\t\t\t\"name\": \"Address Type\",\n\t\t\t\t\"description\": {\n\t\t\t\t\t\"legacy\": \"Legacy\",\n\t\t\t\t\t\"p2sh-segwit\": \"P2SH Wrapped SegWit\",\n\t\t\t\t\t\"bech32\": \"Bech32\"\n\t\t\t\t},\n\t\t\t\t\"default\": \"p2sh-segwit\",\n\t\t\t\t\"values\": [\n\t\t\t\t\t\"Legacy [legacy]\",\n\t\t\t\t\t\"P2SH Wrapped SegWit [p2sh-segwit]\",\n\t\t\t\t\t\"Bech32 [bech32]\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"avoidpartialspends\": {\n\t\t\t\t\"name\": \"Avoid Partial Spends\",\n\t\t\t\t\"description\": \"Group outputs by address, selecting all or none, instead of selecting on a per-output basis. Improves privacy at expense of higher transaction fees.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"changetype\": {\n\t\t\t\t\"name\": \"Change Address Type\",\n\t\t\t\t\"description\": {\n\t\t\t\t\t\"legacy\": \"Legacy\",\n\t\t\t\t\t\"p2sh-segwit\": \"P2SH Wrapped SegWit\",\n\t\t\t\t\t\"bech32\": \"Bech32\"\n\t\t\t\t},\n\t\t\t\t\"default\": \"p2sh-segwit\",\n\t\t\t\t\"values\": [\n\t\t\t\t\t\"Legacy [legacy]\",\n\t\t\t\t\t\"P2SH Wrapped SegWit [p2sh-segwit]\",\n\t\t\t\t\t\"Bech32 [bech32]\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"consolidatefeerate\": {\n\t\t\t\t\"name\": \"Consolidate Fee Rate\",\n\t\t\t\t\"description\": \"The maximum feerate (in BTC/kvB) at which transaction building may use more inputs than strictly necessary so that the wallet's UTXO pool can be reduced\",\n\t\t\t\t\"default\": 0.0001,\n\t\t\t\t\"min\": 0.00001\n\t\t\t},\n\t\t\t\"disablewallet\": {\n\t\t\t\t\"name\": \"Disable Wallet\",\n\t\t\t\t\"description\": \"Do not load the wallet and disable wallet RPC calls.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"keypool\": {\n\t\t\t\t\"name\": \"Key Pool Size\",\n\t\t\t\t\"description\": \"Set key pool size to . Recommended to use a large number for high volume non-HD wallets.\",\n\t\t\t\t\"default\": 1000,\n\t\t\t\t\"min\": 10\n\t\t\t},\n\t\t\t\"fallbackfee\": {\n\t\t\t\t\"name\": \"Fallback Transaction Fee\",\n\t\t\t\t\"description\": \"A fee rate (in BTC/kB) that will be used when fee estimation has insufficient data\",\n\t\t\t\t\"default\": 0.0002,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"discardfee\": {\n\t\t\t\t\"name\": \"Discard Change Fee\",\n\t\t\t\t\"description\": \"The fee rate (in BTC/kB) that indicates your tolerance for discarding change by adding it to the fee\",\n\t\t\t\t\"default\": 0.0001,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"maxapsfee\": {\n\t\t\t\t\"name\": \"Max Avoid Partial Spend Fee\",\n\t\t\t\t\"description\": \"Spend up to this amount in additional (absolute) fees (in BTC) if it allows the use of partial spend avoidance (default: 0.00)\",\n\t\t\t\t\"default\": 0,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"mintxfee\": {\n\t\t\t\t\"name\": \"Min Transaction Fee\",\n\t\t\t\t\"description\": \"Fee rates (in BTC/kB) smaller than this are considered zero fee for transaction creation\",\n\t\t\t\t\"default\": 0.00001,\n\t\t\t\t\"min\": 0\n\t\t\t},\n\t\t\t\"paytxfee\": {\n\t\t\t\t\"name\": \"Pay Transaction Fee\",\n\t\t\t\t\"description\": \"Fee rate (in BTC/kB) to add to transactions you send. Not recommended to set!\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"signer\": {\n\t\t\t\t\"name\": \"Signer Command\",\n\t\t\t\t\"description\": \"External signing tool, see doc/external-signer.md\"\n\t\t\t},\n\t\t\t\"spendzeroconfchange\": {\n\t\t\t\t\"name\": \"Spend Unconfirmed Change\",\n\t\t\t\t\"description\": \"Spend unconfirmed change when sending transactions.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"rootcertificates\": {\n\t\t\t\t\"name\": \"Root Certificate file\",\n\t\t\t\t\"description\": \"Specify a custom root certificate to trust for payment requests. Delete value to disable trusting root certificates.\",\n\t\t\t\t\"default\": \"-system-\"\n\t\t\t},\n\t\t\t\"txconfirmtarget\": {\n\t\t\t\t\"name\": \"Transaction Fee Confirmation Target\",\n\t\t\t\t\"description\": \"If paytxfee is not set, include enough fee so that transactions should confirm within blocks\",\n\t\t\t\t\"default\": 6,\n\t\t\t\t\"min\": 2,\n\t\t\t\t\"max\": 25\n\t\t\t},\n\t\t\t\"unsafesqlitesync\": {\n\t\t\t\t\"name\": \"Unsafe SQL Lite Sync\",\n\t\t\t\t\"description\": \"Disable waiting for the database to sync to disk. This is unsafe and can cause data loss and corruption. This option is only used by tests to improve their performance.\",\n\t\t\t\t\"default\": 0\n\t\t\t},\n\t\t\t\"walletrbf\": {\n\t\t\t\t\"name\": \"Enable Replace By Fee Transactions\",\n\t\t\t\t\"description\": \"Send transactions with full-RBF opt-in enabled.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"wallet\": {\n\t\t\t\t\"name\": \"Wallet Path\",\n\t\t\t\t\"description\": \"Specify wallet database path. Can be specified multiple times to load multiple wallets. Path is interpreted relative to if it is not absolute and will be created if it does not exist.\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"walletdir\": {\n\t\t\t\t\"name\": \"Wallet Data Storage Location\",\n\t\t\t\t\"description\": \"Specify a non-default location to store wallet data.\",\n\t\t\t\t\"default\": \"$BASE/wallets\"\n\t\t\t},\n\t\t\t\"walletbroadcast\": {\n\t\t\t\t\"name\": \"Broadcast Transactions\",\n\t\t\t\t\"description\": \"Broadcast transactions created by the wallet.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"walletnotify\": {\n\t\t\t\t\"name\": \"Wallet Notification\",\n\t\t\t\t\"description\": \"Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"dblogsize\": {\n\t\t\t\t\"name\": \"DB Log Size\",\n\t\t\t\t\"description\": \"Flush wallet database activity from memory to disk log every megabytes\",\n\t\t\t\t\"default\": 100\n\t\t\t},\n\t\t\t\"flushwallet\": {\n\t\t\t\t\"name\": \"Flush Wallet Automatically\",\n\t\t\t\t\"description\": \"Run a thread to flush wallet periodically.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"privdb\": {\n\t\t\t\t\"name\": \"Private DB\",\n\t\t\t\t\"description\": \"Set the DB_PRIVATE flag in the wallet db environment.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"walletrejectlongchains\": {\n\t\t\t\t\"name\": \"Reject Long Transaction Chains\",\n\t\t\t\t\"description\": \"Wallet will not create transactions that violate mempool chain limits.\",\n\t\t\t\t\"default\": 1\n\t\t\t},\n\t\t\t\"walletcrosschain\": {\n\t\t\t\t\"name\": \"Wallet Cross Chain\",\n\t\t\t\t\"description\": \"Allow reusing wallet files across chains.\",\n\t\t\t\t\"default\": 0\n\t\t\t}\n\t\t},\n\t\t\"zeromq\": {\n\t\t\t\"section\": \"ZeroMQ\",\n\t\t\t\"description\": \"Options for handling notifications emitted via ZeroMQ.\",\n\t\t\t\"zmqpubhashblock\": {\n\t\t\t\t\"name\": \"Publish Block Hashes\",\n\t\t\t\t\"description\": \"Enable publishing of block hashes to .\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"zmqpubhashtx\": {\n\t\t\t\t\"name\": \"Publish Transaction Hashes\",\n\t\t\t\t\"description\": \"Enable publishing of transaction hashes to .\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"zmqpubrawblock\": {\n\t\t\t\t\"name\": \"Publish Raw Blocks\",\n\t\t\t\t\"description\": \"Enable publishing of raw block hex to .\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"zmqpubrawtx\": {\n\t\t\t\t\"name\": \"Publish Raw Transactions\",\n\t\t\t\t\"description\": \"Enable publishing of raw transaction hex to .\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"zmqpubhashblockhwm\": {\n\t\t\t\t\"name\": \"Publish Block Hashes High Water Mark\",\n\t\t\t\t\"description\": \"Set publish hash block outbound message high water mark.\",\n\t\t\t\t\"default\": 1000\n\t\t\t},\n\t\t\t\"zmqpubhashtxhwm\": {\n\t\t\t\t\"name\": \"Publish Transaction Hashes High Water Mark\",\n\t\t\t\t\"description\": \"Set publish hash transaction outbound message high water mark.\",\n\t\t\t\t\"default\": 1000\n\t\t\t},\n\t\t\t\"zmqpubrawblockhwm\": {\n\t\t\t\t\"name\": \"Publish Raw Blocks High Water Mark\",\n\t\t\t\t\"description\": \"Set publish raw block outbound message high water mark.\",\n\t\t\t\t\"default\": 1000\n\t\t\t},\n\t\t\t\"zmqpubrawtxhwm\": {\n\t\t\t\t\"name\": \"Publish Raw Transactions High Water Mark\",\n\t\t\t\t\"description\": \"Set publish raw transaction outbound message high water mark.\",\n\t\t\t\t\"default\": 1000\n\t\t\t},\n\t\t\t\"zmqpubsequence\": {\n\t\t\t\t\"name\": \"Publish Hash Block and Transaction Sequence\",\n\t\t\t\t\"description\": \"Enable publish hash block and tx sequence in .\",\n\t\t\t\t\"default\": \"\"\n\t\t\t},\n\t\t\t\"zmqpubsequencehwm\": {\n\t\t\t\t\"name\": \"Publish Hash Sequence Message High Water Mark\",\n\t\t\t\t\"description\": \"Set publish hash sequence message high water mark.\",\n\t\t\t\t\"default\": 1000\n\t\t\t}\n\t\t}\n\t};\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t/*\n\tobject-assign\n\t(c) Sindre Sorhus\n\t@license MIT\n\t*/\n\t\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (getOwnPropertySymbols) {\n\t\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tfunction checkDCE() {\n\t /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n\t if (\n\t typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n\t typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n\t ) {\n\t return;\n\t }\n\t if (false) {\n\t // This branch is unreachable because this function is only called\n\t // in production, but the condition is true only in development.\n\t // Therefore if the branch is still here, dead code elimination wasn't\n\t // properly applied.\n\t // Don't change the message. React DevTools relies on it. Also make sure\n\t // this message doesn't occur elsewhere in this function, or it will cause\n\t // a false positive.\n\t throw new Error('^_^');\n\t }\n\t try {\n\t // Verify that the code above has been dead code eliminated (DCE'd).\n\t __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n\t } catch (err) {\n\t // DevTools shouldn't crash React, no matter what.\n\t // We should still report in case we break this code.\n\t console.error(err);\n\t }\n\t}\n\t\n\tif (true) {\n\t // DCE check should happen before ReactDOM bundle executes so that\n\t // DevTools can report bad minification during injection.\n\t checkDCE();\n\t module.exports = __webpack_require__(21);\n\t} else {\n\t module.exports = require('./cjs/react-dom.development.js');\n\t}\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\texports.fillDescription = fillDescription;\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(2);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _Section = __webpack_require__(29);\n\t\n\tvar _Section2 = _interopRequireDefault(_Section);\n\t\n\tvar _Item = __webpack_require__(8);\n\t\n\tvar _Item2 = _interopRequireDefault(_Item);\n\t\n\tvar _Select = __webpack_require__(9);\n\t\n\tvar _Select2 = _interopRequireDefault(_Select);\n\t\n\tvar _system = __webpack_require__(3);\n\t\n\tvar _data = __webpack_require__(4);\n\t\n\tvar _data2 = _interopRequireDefault(_data);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar Editor = function (_Component) {\n\t _inherits(Editor, _Component);\n\t\n\t function Editor() {\n\t var _ref;\n\t\n\t var _temp, _this, _ret;\n\t\n\t _classCallCheck(this, Editor);\n\t\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Editor.__proto__ || Object.getPrototypeOf(Editor)).call.apply(_ref, [this].concat(args))), _this), _this.change = function (data, name) {\n\t return function (value) {\n\t data[name] = value;\n\t _this.props.onChange(_extends({}, _this.props.settings));\n\t };\n\t }, _temp), _possibleConstructorReturn(_this, _ret);\n\t }\n\t\n\t _createClass(Editor, [{\n\t key: 'render',\n\t value: function render() {\n\t var settings = this.props.settings;\n\t\n\t var platform = settings.__internal.platform;\n\t var base = settings.core.datadir !== '$BASE' ? settings.core.datadir : (0, _system.basePath)(platform);\n\t\n\t // handle config dependencies here\n\t if (settings.network.peerblockfilters === 1 && settings.core.blockfilterindex !== \"1\") {\n\t settings.core.blockfilterindex = \"1\";\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t this.select('__internal', 'platform'),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.core.section, description: _data2.default.core.description },\n\t this.text('core', 'alertnotify'),\n\t this.select('core', 'blockfilterindex'),\n\t this.text('core', 'blocknotify'),\n\t this.path('core', 'blocksdir', base, platform),\n\t this.flag('core', 'blocksonly'),\n\t this.text('core', 'assumevalid'),\n\t this.flag('core', 'coinstatsindex'),\n\t this.flag('core', 'daemon'),\n\t this.flag('core', 'daemonwait'),\n\t this.path('core', 'datadir', base, platform),\n\t this.number('core', 'dbbatchsize'),\n\t this.number('core', 'dbcache'),\n\t this.text('core', 'includeconf'),\n\t this.flag('core', 'allowignoredconf'),\n\t this.text('core', 'loadblock'),\n\t this.number('core', 'maxorphantx'),\n\t this.number('core', 'maxmempool'),\n\t this.number('core', 'mempoolexpiry'),\n\t this.flag('core', 'persistmempool'),\n\t this.flag('core', 'persistmempoolv1'),\n\t this.text('core', 'minimumchainwork'),\n\t this.number('core', 'blockreconstructionextratxn'),\n\t this.number('core', 'par'),\n\t this.text('core', 'pid'),\n\t this.number('core', 'prune'),\n\t this.flag('core', 'reindex-chainstate'),\n\t this.flag('core', 'reindex'),\n\t this.text('core', 'settings'),\n\t this.text('core', 'shutdownnotify'),\n\t this.text('core', 'startupnotify'),\n\t this.flag('core', 'txindex')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.debug.section, description: _data2.default.debug.description },\n\t this.text('debug', 'uacomment'),\n\t this.flag('debug', 'acceptstalefeeestimates'),\n\t this.flag('debug', 'addrmantest'),\n\t this.flag('debug', 'capturemessages'),\n\t this.number('debug', 'checkblocks'),\n\t this.number('debug', 'checklevel'),\n\t this.number('debug', 'checkaddrman'),\n\t this.number('debug', 'checkmempool'),\n\t this.flag('debug', 'checkpoints'),\n\t this.decimal('debug', 'dbcrashratio'),\n\t this.flag('debug', 'fastprune'),\n\t this.flag('debug', 'stopafterblockimport'),\n\t this.number('debug', 'stopatheight'),\n\t this.text('debug', 'testactivationheight'),\n\t this.number('debug', 'limitancestorcount'),\n\t this.number('debug', 'limitancestorsize'),\n\t this.number('debug', 'limitdescendantcount'),\n\t this.number('debug', 'limitdescendantsize'),\n\t this.select('debug', 'debug'),\n\t this.select('debug', 'debugexclude'),\n\t this.path('debug', 'debuglogfile', base, platform),\n\t this.flag('debug', 'logips'),\n\t this.text('debug', 'loglevel'),\n\t this.flag('debug', 'loglevelalways'),\n\t this.flag('debug', 'logsourcelocations'),\n\t this.flag('debug', 'logthreadnames'),\n\t this.flag('debug', 'logtimestamps'),\n\t this.flag('debug', 'logtimemicros'),\n\t this.number('debug', 'mocktime'),\n\t this.number('debug', 'maxsigcachesize'),\n\t this.number('debug', 'maxtipage'),\n\t this.decimal('debug', 'maxtxfee'),\n\t this.flag('debug', 'printtoconsole'),\n\t this.flag('debug', 'printpriority'),\n\t this.text('debug', 'promiscuousmempoolflags'),\n\t this.flag('debug', 'shrinkdebugfile')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.chain.section, description: _data2.default.chain.description },\n\t this.select('chain', 'chain'),\n\t this.flag('chain', 'regtest'),\n\t this.flag('chain', 'signet'),\n\t this.text('chain', 'signetchallenge'),\n\t this.text('chain', 'signetseednode'),\n\t this.flag('chain', 'testnet'),\n\t this.text('chain', 'vbparams')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.mining.section, description: _data2.default.mining.description },\n\t this.number('mining', 'blockmaxweight'),\n\t this.decimal('mining', 'blockmintxfee'),\n\t this.text('mining', 'blockversion')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.network.section, description: _data2.default.network.description },\n\t this.text('network', 'addnode'),\n\t this.path('network', 'asmap', base, platform),\n\t this.number('network', 'bantime'),\n\t this.text('network', 'bind'),\n\t this.flag('network', 'cjdnsreachable'),\n\t this.text('network', 'connect'),\n\t this.flag('network', 'discover'),\n\t this.flag('network', 'dns'),\n\t this.flag('network', 'dnsseed'),\n\t this.text('network', 'externalip'),\n\t this.flag('network', 'fixedseeds'),\n\t this.flag('network', 'forcednsseed'),\n\t this.flag('network', 'i2pacceptincoming'),\n\t this.text('network', 'i2psam'),\n\t this.flag('network', 'listen'),\n\t this.flag('network', 'listenonion'),\n\t this.number('network', 'maxconnections'),\n\t this.number('network', 'maxreceivebuffer'),\n\t this.number('network', 'maxsendbuffer'),\n\t this.number('network', 'maxtimeadjustment'),\n\t this.flag('network', 'natpmp'),\n\t this.flag('network', 'networkactive'),\n\t this.text('network', 'onion'),\n\t this.select('network', 'onlynet'),\n\t this.flag('network', 'v2transport'),\n\t this.flag('network', 'peerblockfilters'),\n\t this.flag('network', 'peerbloomfilters'),\n\t this.number('network', 'peertimeout'),\n\t this.number('network', 'port'),\n\t this.text('network', 'proxy'),\n\t this.flag('network', 'proxyrandomize'),\n\t this.text('network', 'seednode'),\n\t this.number('network', 'timeout'),\n\t this.text('network', 'torcontrol'),\n\t this.text('network', 'torpassword'),\n\t this.flag('network', 'txreconciliation'),\n\t this.flag('network', 'upnp'),\n\t this.text('network', 'whitebind'),\n\t this.text('network', 'whitelist'),\n\t this.number('network', 'maxuploadtarget')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.relay.section, description: _data2.default.relay.description },\n\t this.flag('relay', 'acceptnonstdtxn'),\n\t this.decimal('relay', 'incrementalrelayfee'),\n\t this.decimal('relay', 'dustrelayfee'),\n\t this.number('relay', 'bytespersigop'),\n\t this.flag('relay', 'datacarrier'),\n\t this.number('relay', 'datacarriersize'),\n\t this.flag('relay', 'mempoolfullrbf'),\n\t this.flag('relay', 'permitbaremultisig'),\n\t this.decimal('relay', 'minrelaytxfee'),\n\t this.flag('relay', 'whitelistrelay')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.rpc.section, description: _data2.default.rpc.description },\n\t this.multiselect('rpc', 'deprecatedrpc'),\n\t this.flag('rpc', 'server'),\n\t this.flag('rpc', 'rest'),\n\t this.text('rpc', 'rpcbind'),\n\t this.flag('rpc', 'rpcdoccheck'),\n\t this.path('rpc', 'rpccookiefile', base, platform),\n\t this.text('rpc', 'rpcauth'),\n\t this.number('rpc', 'rpcport'),\n\t this.text('rpc', 'rpcallowip'),\n\t this.flag('rpc', 'rpcwhitelistdefault'),\n\t this.text('rpc', 'rpcwhitelist'),\n\t this.number('rpc', 'rpcthreads'),\n\t this.number('rpc', 'rpcworkqueue'),\n\t this.number('rpc', 'rpcservertimeout')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.wallet.section, description: _data2.default.wallet.description },\n\t this.select('wallet', 'addresstype'),\n\t this.flag('wallet', 'avoidpartialspends'),\n\t this.select('wallet', 'changetype'),\n\t this.decimal('wallet', 'consolidatefeerate'),\n\t this.flag('wallet', 'disablewallet'),\n\t this.number('wallet', 'keypool'),\n\t this.decimal('wallet', 'fallbackfee'),\n\t this.decimal('wallet', 'discardfee'),\n\t this.decimal('wallet', 'maxapsfee'),\n\t this.decimal('wallet', 'mintxfee'),\n\t this.decimal('wallet', 'paytxfee'),\n\t this.text('wallet', 'signer'),\n\t this.flag('wallet', 'spendzeroconfchange'),\n\t this.text('wallet', 'rootcertificates'),\n\t this.number('wallet', 'txconfirmtarget'),\n\t this.flag('wallet', 'unsafesqlitesync'),\n\t this.flag('wallet', 'walletrbf'),\n\t this.text('wallet', 'wallet'),\n\t this.path('wallet', 'walletdir', base, platform),\n\t this.flag('wallet', 'walletbroadcast'),\n\t this.text('wallet', 'walletnotify'),\n\t this.number('wallet', 'dblogsize'),\n\t this.flag('wallet', 'flushwallet'),\n\t this.flag('wallet', 'privdb'),\n\t this.flag('wallet', 'walletrejectlongchains'),\n\t this.flag('wallet', 'walletcrosschain')\n\t ),\n\t _react2.default.createElement(\n\t _Section2.default,\n\t { title: _data2.default.zeromq.section, description: _data2.default.zeromq.description },\n\t this.text('zeromq', 'zmqpubhashblock'),\n\t this.text('zeromq', 'zmqpubhashtx'),\n\t this.text('zeromq', 'zmqpubrawblock'),\n\t this.text('zeromq', 'zmqpubrawtx'),\n\t this.text('zeromq', 'zmqpubsequence'),\n\t this.number('zeromq', 'zmqpubhashblockhwm'),\n\t this.number('zeromq', 'zmqpubhashtxhwm'),\n\t this.number('zeromq', 'zmqpubrawblockhwm'),\n\t this.number('zeromq', 'zmqpubrawtxhwm'),\n\t this.number('zeromq', 'zmqpubsequencehwm')\n\t )\n\t );\n\t }\n\t }, {\n\t key: 'select',\n\t value: function select(section, prop) {\n\t var isEnabled = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t check(section, prop);\n\t\n\t // TODO [ToDr] hacky\n\t var configMode = this.configMode;\n\t var settings = this.props.settings;\n\t\n\t var value = or(settings[section][prop], _data2.default[section][prop].default);\n\t var description = fillDescription(_data2.default[section][prop].description[value], value, section + '.' + prop);\n\t\n\t return _react2.default.createElement(\n\t _Item2.default,\n\t {\n\t title: _data2.default[section][prop].name,\n\t description: description,\n\t disabled: !isEnabled\n\t },\n\t _react2.default.createElement(_Select2.default, {\n\t onChange: this.change(settings[section], prop),\n\t value: value,\n\t values: _data2.default[section][prop].values.map(val),\n\t id: configMode + '_' + prop,\n\t disabled: !isEnabled\n\t })\n\t );\n\t }\n\t }, {\n\t key: 'multiselect',\n\t value: function multiselect(section, prop) {\n\t var _this2 = this;\n\t\n\t var isEnabled = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t check(section, prop);\n\t\n\t // TODO [ToDr] hacky\n\t var configMode = this.configMode;\n\t var settings = this.props.settings;\n\t\n\t var current = settings[section][prop];\n\t var description;\n\t\n\t if (current === undefined || current.length === 0) {\n\t description = '';\n\t } else {\n\t description = fillDescription(_data2.default[section][prop].description, current);\n\t }\n\t\n\t var change = function change(val) {\n\t return function (ev) {\n\t var checked = ev.target.checked;\n\t\n\t var newValue = [].concat(_toConsumableArray(current));\n\t var idx = newValue.indexOf(val);\n\t\n\t if (checked) {\n\t newValue.push(val);\n\t } else if (idx !== -1) {\n\t newValue.splice(idx, 1);\n\t }\n\t _this2.change(settings[section], prop)(newValue);\n\t };\n\t };\n\t\n\t return _react2.default.createElement(\n\t _Item2.default,\n\t {\n\t title: _data2.default[section][prop].name,\n\t description: description,\n\t disabled: !isEnabled,\n\t large: true\n\t },\n\t _data2.default[section][prop].values.map(val).map(function (value) {\n\t var id = configMode + '_' + section + '_' + prop + '_' + value.value;\n\t\n\t return _react2.default.createElement(\n\t 'label',\n\t { className: 'mdl-switch mdl-js-switch', htmlFor: id, key: value.name },\n\t _react2.default.createElement('input', {\n\t type: 'checkbox',\n\t id: id,\n\t className: 'mdl-switch__input',\n\t checked: current.indexOf(value.value) !== -1,\n\t disabled: !isEnabled,\n\t onChange: change(value.value)\n\t }),\n\t _react2.default.createElement(\n\t 'span',\n\t { className: 'mdl-switch__label' },\n\t value.name\n\t )\n\t );\n\t })\n\t );\n\t }\n\t }, {\n\t key: 'number',\n\t value: function number(section, prop) {\n\t var _this3 = this;\n\t\n\t var isEnabled = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t check(section, prop);\n\t var settings = this.props.settings;\n\t\n\t var value = or(settings[section][prop], _data2.default[section][prop].default);\n\t var description = fillDescription(_data2.default[section][prop].description, value);\n\t\n\t return _react2.default.createElement(\n\t _Item2.default,\n\t {\n\t title: _data2.default[section][prop].name,\n\t description: description,\n\t disabled: !isEnabled\n\t },\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'mdl-textfield mdl-js-textfield mdl-textfield--floating-label' },\n\t _react2.default.createElement('input', {\n\t className: 'mdl-textfield__input',\n\t type: 'number',\n\t value: value || 0,\n\t onChange: function onChange(ev) {\n\t return _this3.change(settings[section], prop)(Number(ev.target.value));\n\t },\n\t min: _data2.default[section][prop].min,\n\t max: _data2.default[section][prop].max,\n\t disabled: !isEnabled\n\t }),\n\t _react2.default.createElement(\n\t 'span',\n\t { className: 'mdl-textfield__error' },\n\t 'Please provide a valid number (min: ',\n\t _data2.default[section][prop].min,\n\t ', max: ',\n\t _data2.default[section][prop].max,\n\t ')'\n\t )\n\t )\n\t );\n\t }\n\t }, {\n\t key: 'decimal',\n\t value: function decimal(section, prop) {\n\t var _this4 = this;\n\t\n\t var isEnabled = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t check(section, prop);\n\t var settings = this.props.settings;\n\t\n\t var value = or(settings[section][prop], _data2.default[section][prop].default);\n\t var description = fillDescription(_data2.default[section][prop].description, value);\n\t\n\t return _react2.default.createElement(\n\t _Item2.default,\n\t {\n\t title: _data2.default[section][prop].name,\n\t description: description,\n\t disabled: !isEnabled\n\t },\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'mdl-textfield mdl-js-textfield mdl-textfield--floating-label' },\n\t _react2.default.createElement('input', {\n\t className: 'mdl-textfield__input',\n\t type: 'number',\n\t step: '0.00000001',\n\t value: value || 0,\n\t onChange: function onChange(ev) {\n\t return _this4.change(settings[section], prop)(Number(ev.target.value));\n\t },\n\t min: _data2.default[section][prop].min,\n\t max: _data2.default[section][prop].max,\n\t disabled: !isEnabled\n\t }),\n\t _react2.default.createElement(\n\t 'span',\n\t { className: 'mdl-textfield__error' },\n\t 'Please provide a valid number (min: ',\n\t _data2.default[section][prop].min,\n\t ', max: ',\n\t _data2.default[section][prop].max,\n\t ')'\n\t )\n\t )\n\t );\n\t }\n\t }, {\n\t key: 'path',\n\t value: function path(section, prop, base, platform) {\n\t var isEnabled = arguments.length <= 4 || arguments[4] === undefined ? true : arguments[4];\n\t\n\t return this.text(section, prop, isEnabled, function (value) {\n\t if (!value) {\n\t return value;\n\t }\n\t value = value.replace('$LOCAL', (0, _system.localPath)(platform));\n\t value = value.replace('$BASE', base);\n\t // normalize separators\n\t value = (0, _system.joinPath)(value.split('\\\\'), platform);\n\t value = (0, _system.joinPath)(value.split('/'), platform);\n\t return value;\n\t });\n\t }\n\t }, {\n\t key: 'text',\n\t value: function text(section, prop) {\n\t var _this5 = this;\n\t\n\t var isEnabled = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t var processValue = arguments.length <= 3 || arguments[3] === undefined ? function (x) {\n\t return x;\n\t } : arguments[3];\n\t\n\t check(section, prop);\n\t var settings = this.props.settings;\n\t\n\t var value = processValue(or(settings[section][prop], _data2.default[section][prop].default));\n\t var description = fillDescription(_data2.default[section][prop].description, value);\n\t\n\t return _react2.default.createElement(\n\t _Item2.default,\n\t {\n\t title: _data2.default[section][prop].name,\n\t description: description,\n\t disabled: !isEnabled\n\t },\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'mdl-textfield mdl-js-textfield mdl-textfield--floating-label' },\n\t _react2.default.createElement('input', {\n\t className: 'mdl-textfield__input',\n\t type: 'text',\n\t value: value || '',\n\t onChange: function onChange(ev) {\n\t return _this5.change(settings[section], prop)(ev.target.value);\n\t },\n\t disabled: !isEnabled\n\t })\n\t )\n\t );\n\t }\n\t }, {\n\t key: 'flag',\n\t value: function flag(section, prop) {\n\t var _this6 = this;\n\t\n\t var isEnabled = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t check(section, prop);\n\t\n\t // TODO [ToDr] hacky\n\t var configMode = this.configMode;\n\t var settings = this.props.settings;\n\t\n\t var value = or(settings[section][prop], _data2.default[section][prop].default);\n\t var description = fillDescription(_data2.default[section][prop].description, value);\n\t var id = configMode + '_' + section + '_' + prop;\n\t\n\t return _react2.default.createElement(\n\t _Item2.default,\n\t {\n\t title: _data2.default[section][prop].name,\n\t description: description,\n\t disabled: !isEnabled\n\t },\n\t _react2.default.createElement(\n\t 'label',\n\t { className: 'mdl-switch mdl-js-switch', htmlFor: id },\n\t _react2.default.createElement('input', {\n\t type: 'checkbox',\n\t id: id,\n\t className: 'mdl-switch__input',\n\t checked: value,\n\t disabled: !isEnabled,\n\t onChange: function onChange(ev) {\n\t return _this6.change(settings[section], prop)(ev.target.checked ? 1 : 0);\n\t }\n\t }),\n\t _react2.default.createElement('span', { className: 'mdl-switch__label' })\n\t )\n\t );\n\t }\n\t }, {\n\t key: 'list',\n\t value: function list(section, prop) {\n\t var _this7 = this;\n\t\n\t var isEnabled = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\t\n\t check(section, prop);\n\t var settings = this.props.settings;\n\t\n\t var value = or(settings[section][prop], _data2.default[section][prop].default);\n\t var description = fillDescription(_data2.default[section][prop].description, value.toString());\n\t\n\t return _react2.default.createElement(\n\t _Item2.default,\n\t {\n\t title: _data2.default[section][prop].name,\n\t description: description,\n\t disabled: !isEnabled\n\t },\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'mdl-textfield mdl-js-textfield mdl-textfield--floating-label' },\n\t value.map(function (v, idx) {\n\t return _react2.default.createElement('input', {\n\t disabled: !isEnabled,\n\t key: idx,\n\t className: 'mdl-textfield__input',\n\t type: 'text',\n\t value: v || '',\n\t onChange: function onChange(ev) {\n\t var newValue = [].concat(_toConsumableArray(value));\n\t if (ev.target.value !== '') {\n\t newValue[idx] = ev.target.value;\n\t } else {\n\t delete newValue[idx];\n\t }\n\t _this7.change(settings[section], prop)(newValue);\n\t }\n\t });\n\t }),\n\t _react2.default.createElement('br', null),\n\t _react2.default.createElement(\n\t 'button',\n\t {\n\t style: { bottom: 0, right: 0, zIndex: 10, transform: 'scale(0.5)' },\n\t className: 'mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-js-ripple-effect',\n\t onClick: function onClick() {\n\t return _this7.change(settings[section], prop)(value.concat(['']));\n\t },\n\t disabled: !isEnabled\n\t },\n\t _react2.default.createElement(\n\t 'i',\n\t { className: 'material-icons' },\n\t 'add'\n\t )\n\t )\n\t )\n\t );\n\t }\n\t }]);\n\t\n\t return Editor;\n\t}(_react.Component);\n\t\n\tEditor.propTypes = {\n\t settings: _propTypes2.default.object.isRequired,\n\t onChange: _propTypes2.default.func.isRequired\n\t};\n\tfunction fillDescription(description, value, key) {\n\t if (!description) {\n\t console.warn('Cant find description for: value:' + value + ' at ' + key);\n\t return 'unknown entry';\n\t }\n\t\n\t if ((typeof description === 'undefined' ? 'undefined' : _typeof(description)) === 'object') {\n\t // If the description value is an array, concatenate the descriptions\n\t if (Array.isArray(value)) {\n\t var formatted = '';\n\t for (var val in value) {\n\t if ({}.hasOwnProperty.call(value, val)) {\n\t formatted += description[value[val]] + ',';\n\t }\n\t }\n\t // remove trailing comma\n\t formatted = formatted.replace(/(,$)/g, \"\");\n\t return formatted;\n\t }\n\t // If there is a single value and it exists in the description mapping, return it\n\t if (description[value] !== undefined) {\n\t return description[value];\n\t }\n\t return description.value;\n\t }\n\t return description.replace(/{}/g, value || '');\n\t}\n\t\n\tfunction or(value, def) {\n\t if (value === undefined) {\n\t return def;\n\t }\n\t return value;\n\t}\n\t\n\tfunction check(section, prop) {\n\t if (!_data2.default[section][prop]) {\n\t throw new Error('Can\\'t find data for ' + section + '.' + prop);\n\t }\n\t}\n\t\n\tfunction val(data) {\n\t var match = data.match(/(.+)\\s+\\[(.+)]/);\n\t if (!match) {\n\t return { name: data, value: data };\n\t }\n\t\n\t return {\n\t name: match[1],\n\t value: match[2]\n\t };\n\t}\n\t\n\texports.default = Editor;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(2);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar heightStyle = { height: '100%' };\n\t\n\tfunction Item(_ref) {\n\t var title = _ref.title;\n\t var description = _ref.description;\n\t var children = _ref.children;\n\t var disabled = _ref.disabled;\n\t var large = _ref.large;\n\t\n\t var isDisabled = disabled ? 'disabled' : '';\n\t return _react2.default.createElement(\n\t 'li',\n\t {\n\t className: 'mdl-list__item mdl-list__item--two-line ' + isDisabled,\n\t style: heightStyle\n\t },\n\t _react2.default.createElement(\n\t 'span',\n\t { className: 'mdl-list__item-primary-content', style: heightStyle },\n\t _react2.default.createElement(\n\t 'span',\n\t null,\n\t title\n\t ),\n\t _react2.default.createElement(\n\t 'span',\n\t { className: 'mdl-list__item-sub-title' },\n\t description\n\t )\n\t ),\n\t _react2.default.createElement(\n\t 'span',\n\t { className: 'mdl-list__item-secondary-content' },\n\t children\n\t )\n\t );\n\t}\n\t\n\tItem.propTypes = {\n\t title: _propTypes2.default.string.isRequired,\n\t description: _propTypes2.default.string,\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.array]).isRequired,\n\t disabled: _propTypes2.default.bool,\n\t large: _propTypes2.default.bool\n\t};\n\t\n\tItem.defaultPropTypes = {\n\t disabled: false,\n\t large: false\n\t};\n\t\n\texports.default = Item;\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(1);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(2);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _classnames = __webpack_require__(12);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction Select(_ref) {\n\t var value = _ref.value;\n\t var onChange = _ref.onChange;\n\t var values = _ref.values;\n\t var id = _ref.id;\n\t var disabled = _ref.disabled;\n\t\n\t var selected = values.find(function (val) {\n\t return val.value === value;\n\t }) || {};\n\t\n\t // We cannot just remove options, since mdl is adding some additional dom nodes.\n\t var list = _react2.default.createElement(\n\t 'ul',\n\t {\n\t className: 'mdl-menu mdl-menu--bottom-left mdl-js-menu',\n\t htmlFor: id,\n\t style: disabled ? { display: 'none' } : {}\n\t },\n\t values.map(function (_ref2) {\n\t var name = _ref2.name;\n\t var value = _ref2.value;\n\t return _react2.default.createElement(\n\t 'li',\n\t { className: 'mdl-menu__item', 'data-val': value, key: value, onClick: function onClick() {\n\t return onChange(value);\n\t } },\n\t name\n\t );\n\t })\n\t );\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t { className: 'mdl-textfield mdl-js-textfield mdl-textfield--floating-label getmdl-select' },\n\t _react2.default.createElement('input', {\n\t onKeyDown: handleKeyPress,\n\t className: (0, _classnames2.default)('mdl-textfield__input', {\n\t 'is-disabled': disabled // Overcome mdl light issues\n\t }),\n\t disabled: disabled,\n\t value: selected.name,\n\t type: 'text',\n\t id: id,\n\t readOnly: true,\n\t 'data-val': selected.value\n\t }),\n\t list\n\t );\n\t}\n\t\n\tfunction handleKeyPress(ev) {\n\t if (ev.keyCode === 13) {\n\t ev.target.dispatchEvent(new window.MouseEvent('click'));\n\t }\n\t}\n\t\n\tSelect.propTypes = {\n\t id: _propTypes2.default.string.isRequired,\n\t value: _propTypes2.default.any.isRequired,\n\t onChange: _propTypes2.default.func.isRequired,\n\t values: _propTypes2.default.array.isRequired,\n\t disabled: _propTypes2.default.bool\n\t};\n\t\n\tSelect.defaultPropTypes = {\n\t disabled: false\n\t};\n\t\n\texports.default = Select;\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar asap = __webpack_require__(23);\n\t\n\tfunction noop() {}\n\t\n\t// States:\n\t//\n\t// 0 - pending\n\t// 1 - fulfilled with _value\n\t// 2 - rejected with _value\n\t// 3 - adopted the state of another promise, _value\n\t//\n\t// once the state is no longer pending (0) it is immutable\n\t\n\t// All `_` prefixed properties will be reduced to `_{random number}`\n\t// at build time to obfuscate them and discourage their use.\n\t// We don't use symbols or Object.defineProperty to fully hide them\n\t// because the performance isn't good enough.\n\t\n\t\n\t// to avoid using try/catch inside critical functions, we\n\t// extract them to here.\n\tvar LAST_ERROR = null;\n\tvar IS_ERROR = {};\n\tfunction getThen(obj) {\n\t try {\n\t return obj.then;\n\t } catch (ex) {\n\t LAST_ERROR = ex;\n\t return IS_ERROR;\n\t }\n\t}\n\t\n\tfunction tryCallOne(fn, a) {\n\t try {\n\t return fn(a);\n\t } catch (ex) {\n\t LAST_ERROR = ex;\n\t return IS_ERROR;\n\t }\n\t}\n\tfunction tryCallTwo(fn, a, b) {\n\t try {\n\t fn(a, b);\n\t } catch (ex) {\n\t LAST_ERROR = ex;\n\t return IS_ERROR;\n\t }\n\t}\n\t\n\tmodule.exports = Promise;\n\t\n\tfunction Promise(fn) {\n\t if (typeof this !== 'object') {\n\t throw new TypeError('Promises must be constructed via new');\n\t }\n\t if (typeof fn !== 'function') {\n\t throw new TypeError('not a function');\n\t }\n\t this._45 = 0;\n\t this._81 = 0;\n\t this._65 = null;\n\t this._54 = null;\n\t if (fn === noop) return;\n\t doResolve(fn, this);\n\t}\n\tPromise._10 = null;\n\tPromise._97 = null;\n\tPromise._61 = noop;\n\t\n\tPromise.prototype.then = function(onFulfilled, onRejected) {\n\t if (this.constructor !== Promise) {\n\t return safeThen(this, onFulfilled, onRejected);\n\t }\n\t var res = new Promise(noop);\n\t handle(this, new Handler(onFulfilled, onRejected, res));\n\t return res;\n\t};\n\t\n\tfunction safeThen(self, onFulfilled, onRejected) {\n\t return new self.constructor(function (resolve, reject) {\n\t var res = new Promise(noop);\n\t res.then(resolve, reject);\n\t handle(self, new Handler(onFulfilled, onRejected, res));\n\t });\n\t};\n\tfunction handle(self, deferred) {\n\t while (self._81 === 3) {\n\t self = self._65;\n\t }\n\t if (Promise._10) {\n\t Promise._10(self);\n\t }\n\t if (self._81 === 0) {\n\t if (self._45 === 0) {\n\t self._45 = 1;\n\t self._54 = deferred;\n\t return;\n\t }\n\t if (self._45 === 1) {\n\t self._45 = 2;\n\t self._54 = [self._54, deferred];\n\t return;\n\t }\n\t self._54.push(deferred);\n\t return;\n\t }\n\t handleResolved(self, deferred);\n\t}\n\t\n\tfunction handleResolved(self, deferred) {\n\t asap(function() {\n\t var cb = self._81 === 1 ? deferred.onFulfilled : deferred.onRejected;\n\t if (cb === null) {\n\t if (self._81 === 1) {\n\t resolve(deferred.promise, self._65);\n\t } else {\n\t reject(deferred.promise, self._65);\n\t }\n\t return;\n\t }\n\t var ret = tryCallOne(cb, self._65);\n\t if (ret === IS_ERROR) {\n\t reject(deferred.promise, LAST_ERROR);\n\t } else {\n\t resolve(deferred.promise, ret);\n\t }\n\t });\n\t}\n\tfunction resolve(self, newValue) {\n\t // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n\t if (newValue === self) {\n\t return reject(\n\t self,\n\t new TypeError('A promise cannot be resolved with itself.')\n\t );\n\t }\n\t if (\n\t newValue &&\n\t (typeof newValue === 'object' || typeof newValue === 'function')\n\t ) {\n\t var then = getThen(newValue);\n\t if (then === IS_ERROR) {\n\t return reject(self, LAST_ERROR);\n\t }\n\t if (\n\t then === self.then &&\n\t newValue instanceof Promise\n\t ) {\n\t self._81 = 3;\n\t self._65 = newValue;\n\t finale(self);\n\t return;\n\t } else if (typeof then === 'function') {\n\t doResolve(then.bind(newValue), self);\n\t return;\n\t }\n\t }\n\t self._81 = 1;\n\t self._65 = newValue;\n\t finale(self);\n\t}\n\t\n\tfunction reject(self, newValue) {\n\t self._81 = 2;\n\t self._65 = newValue;\n\t if (Promise._97) {\n\t Promise._97(self, newValue);\n\t }\n\t finale(self);\n\t}\n\tfunction finale(self) {\n\t if (self._45 === 1) {\n\t handle(self, self._54);\n\t self._54 = null;\n\t }\n\t if (self._45 === 2) {\n\t for (var i = 0; i < self._54.length; i++) {\n\t handle(self, self._54[i]);\n\t }\n\t self._54 = null;\n\t }\n\t}\n\t\n\tfunction Handler(onFulfilled, onRejected, promise){\n\t this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n\t this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n\t this.promise = promise;\n\t}\n\t\n\t/**\n\t * Take a potentially misbehaving resolver function and make sure\n\t * onFulfilled and onRejected are only called once.\n\t *\n\t * Makes no guarantees about asynchrony.\n\t */\n\tfunction doResolve(fn, promise) {\n\t var done = false;\n\t var res = tryCallTwo(fn, function (value) {\n\t if (done) return;\n\t done = true;\n\t resolve(promise, value);\n\t }, function (reason) {\n\t if (done) return;\n\t done = true;\n\t reject(promise, reason);\n\t })\n\t if (!done && res === IS_ERROR) {\n\t done = true;\n\t reject(promise, LAST_ERROR);\n\t }\n\t}\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t Copyright (c) 2016 Jed Watson.\n\t Licensed under the MIT License (MIT), see\n\t http://jedwatson.github.io/classnames\n\t*/\n\t/* global define */\n\t\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar hasOwn = {}.hasOwnProperty;\n\t\n\t\tfunction classNames () {\n\t\t\tvar classes = [];\n\t\n\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\tvar arg = arguments[i];\n\t\t\t\tif (!arg) continue;\n\t\n\t\t\t\tvar argType = typeof arg;\n\t\n\t\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\t\tclasses.push(arg);\n\t\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t\t} else if (argType === 'object') {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn classes.join(' ');\n\t\t}\n\t\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\tmodule.exports = classNames;\n\t\t} else if (true) {\n\t\t\t// register as 'classnames', consistent with npm package name\n\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\t\treturn classNames;\n\t\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else {\n\t\t\twindow.classNames = classNames;\n\t\t}\n\t}());\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module) {(function() {\n\t\n\t // nb. This is for IE10 and lower _only_.\n\t var supportCustomEvent = window.CustomEvent;\n\t if (!supportCustomEvent || typeof supportCustomEvent === 'object') {\n\t supportCustomEvent = function CustomEvent(event, x) {\n\t x = x || {};\n\t var ev = document.createEvent('CustomEvent');\n\t ev.initCustomEvent(event, !!x.bubbles, !!x.cancelable, x.detail || null);\n\t return ev;\n\t };\n\t supportCustomEvent.prototype = window.Event.prototype;\n\t }\n\t\n\t /**\n\t * @param {Element} el to check for stacking context\n\t * @return {boolean} whether this el or its parents creates a stacking context\n\t */\n\t function createsStackingContext(el) {\n\t while (el && el !== document.body) {\n\t var s = window.getComputedStyle(el);\n\t var invalid = function(k, ok) {\n\t return !(s[k] === undefined || s[k] === ok);\n\t }\n\t if (s.opacity < 1 ||\n\t invalid('zIndex', 'auto') ||\n\t invalid('transform', 'none') ||\n\t invalid('mixBlendMode', 'normal') ||\n\t invalid('filter', 'none') ||\n\t invalid('perspective', 'none') ||\n\t s['isolation'] === 'isolate' ||\n\t s.position === 'fixed' ||\n\t s.webkitOverflowScrolling === 'touch') {\n\t return true;\n\t }\n\t el = el.parentElement;\n\t }\n\t return false;\n\t }\n\t\n\t /**\n\t * Finds the nearest