{
  "contractName": "Kernel",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "KERNEL_APP_ID",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "APP_ADDR_NAMESPACE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRecoveryVault",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_appBase",
          "type": "address"
        },
        {
          "name": "_initializePayload",
          "type": "bytes"
        },
        {
          "name": "_setDefault",
          "type": "bool"
        }
      ],
      "name": "newAppInstance",
      "outputs": [
        {
          "name": "appProxy",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "apps",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_baseAcl",
          "type": "address"
        },
        {
          "name": "_permissionsCreator",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CORE_NAMESPACE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        }
      ],
      "name": "allowRecoverability",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_appBase",
          "type": "address"
        }
      ],
      "name": "newAppInstance",
      "outputs": [
        {
          "name": "appProxy",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "recoveryVaultAppId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_recoveryVaultAppId",
          "type": "bytes32"
        }
      ],
      "name": "setRecoveryVaultAppId",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "APP_MANAGER_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_appBase",
          "type": "address"
        }
      ],
      "name": "newPinnedAppInstance",
      "outputs": [
        {
          "name": "appProxy",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "transferToVault",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_namespace",
          "type": "bytes32"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_app",
          "type": "address"
        }
      ],
      "name": "setApp",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_namespace",
          "type": "bytes32"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        }
      ],
      "name": "getApp",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_appBase",
          "type": "address"
        },
        {
          "name": "_initializePayload",
          "type": "bytes"
        },
        {
          "name": "_setDefault",
          "type": "bool"
        }
      ],
      "name": "newPinnedAppInstance",
      "outputs": [
        {
          "name": "appProxy",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_initializePayload",
          "type": "bytes"
        }
      ],
      "name": "newAppProxyPinned",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "APP_BASES_NAMESPACE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "acl",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        }
      ],
      "name": "newAppProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "DEFAULT_ACL_APP_ID",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        },
        {
          "name": "_initializePayload",
          "type": "bytes"
        }
      ],
      "name": "newAppProxy",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_who",
          "type": "address"
        },
        {
          "name": "_where",
          "type": "address"
        },
        {
          "name": "_what",
          "type": "bytes32"
        },
        {
          "name": "_how",
          "type": "bytes"
        }
      ],
      "name": "hasPermission",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_kernel",
          "type": "address"
        },
        {
          "name": "_appId",
          "type": "bytes32"
        }
      ],
      "name": "newAppProxyPinned",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_shouldPetrify",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "proxy",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "isUpgradeable",
          "type": "bool"
        },
        {
          "indexed": false,
          "name": "appId",
          "type": "bytes32"
        }
      ],
      "name": "NewAppProxy",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "vault",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RecoverToVault",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "namespace",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "appId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "app",
          "type": "address"
        }
      ],
      "name": "SetApp",
      "type": "event"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405160208062002eb5833981016040525180156200003e576200003e64010000000062000045810204565b5062000263565b620000586401000000006200014d810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a454400000000000000006020820152901562000134576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620000f8578181015183820152602001620000de565b50505050905090810190601f168015620001265780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506200014b6000196401000000006200017c810204565b565b60006200017760008051602062002e9583398151915264010000000062001b0d6200025b82021704565b905090565b6200018f6401000000006200014d810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156200022e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181518152602001915080519060200190808383600083811015620000f8578181015183820152602001620000de565b506200025860008051602062002e958339815191528264010000000062001d416200025f82021704565b50565b5490565b9055565b612c2280620002736000396000f300608060405260043610620001865763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630803fac081146200018b5780631113ed0d14620001b7578063178e607914620001e157806332f0a3b514620001f9578063397edd41146200022d5780634558850c146200029d578063485cc95514620002bb578063756f604914620002e75780637e7db6e114620002ff57806380cd5ac3146200032357806386070cfe146200034a5780638b3dd74914620003625780638c61757d146200037a5780638ea8dc9d1462000395578063958fde8214620003ad5780639d4941d814620003d4578063ae5b254014620003f8578063be00bbd81462000422578063c050a7a61462000440578063d162f8b014620004b0578063db8a61d4146200051c578063de2873591462000534578063de4796ed146200054c578063e156a8f31462000564578063e8187ff0146200058b578063ede658b014620005a3578063fdef9106146200060f578063ff289fc51462000681575b600080fd5b3480156200019857600080fd5b50620001a3620006a8565b604080519115158252519081900360200190f35b348015620001c457600080fd5b50620001cf620006d6565b60408051918252519081900360200190f35b348015620001ee57600080fd5b50620001cf620006fa565b3480156200020657600080fd5b50620002116200071e565b60408051600160a060020a039092168252519081900360200190f35b3480156200023a57600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452620002119482359460248035600160a060020a0316953695946064949201919081908401838280828437509497505050509135151592506200075b915050565b348015620002aa57600080fd5b506200021160043560243562000909565b348015620002c857600080fd5b50620002e5600160a060020a03600435811690602435166200092c565b005b348015620002f457600080fd5b50620001cf62000b53565b3480156200030c57600080fd5b50620001a3600160a060020a036004351662000b77565b3480156200033057600080fd5b5062000211600435600160a060020a036024351662000b7d565b3480156200035757600080fd5b50620001cf62000c96565b3480156200036f57600080fd5b50620001cf62000c9c565b3480156200038757600080fd5b50620002e560043562000cce565b348015620003a257600080fd5b50620001cf62000dc4565b348015620003ba57600080fd5b5062000211600435600160a060020a036024351662000de8565b348015620003e157600080fd5b50620002e5600160a060020a036004351662000ef8565b3480156200040557600080fd5b50620002e5600435602435600160a060020a0360443516620011af565b3480156200042f57600080fd5b506200021160043560243562001292565b3480156200044d57600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452620002119482359460248035600160a060020a031695369594606494920191908190840183828082843750949750505050913515159250620012b6915050565b348015620004bd57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845262000211948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750620013dc9650505050505050565b3480156200052957600080fd5b50620001cf620014e7565b3480156200054157600080fd5b50620002116200150b565b3480156200055957600080fd5b50620001a362001559565b3480156200057157600080fd5b5062000211600160a060020a03600435166024356200156e565b3480156200059857600080fd5b50620001cf62001594565b348015620005b057600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845262000211948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750620015b89650505050505050565b3480156200061c57600080fd5b50604080516020601f606435600481810135928301849004840285018401909552818452620001a394600160a060020a038135811695602480359092169560443595369560849401918190840183828082843750949750620016c39650505050505050565b3480156200068e57600080fd5b5062000211600160a060020a036004351660243562001806565b600080620006b562000c9c565b90508015801590620006d0575080620006cd62001825565b10155b91505090565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c90565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb90565b60015460009081527f9e3eae70920eeef6013879bf9155b985893698c145361c31365929723678b2576020526040902054600160a060020a031690565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd0620007aa7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8762001829565b620007c2333084620007bc8562001837565b620016c3565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c4544000000000000000000000000000060208201529015156200088e5760405160008051602062002bd783398151915281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200085257818101518382015260200162000838565b50505050905090810190601f168015620008805780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50620008bc7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f888862001841565b620008c9308887620015b8565b92508315620008ff57620008ff7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb8885620011af565b5050949350505050565b6000602081815292815260408082209093529081522054600160a060020a031681565b60006200093862000c9c565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015620009c65760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50620009d162001916565b62000a1e7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a85620019ed565b62000a4a307fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a6200156e565b905080600160a060020a031663c4d66de8836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801562000ac157600080fd5b505af115801562000ad6573d6000803e3d6000fd5b5062000b2a92507fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb91507fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a905083620019ed565b50507f7e852e0fcfce6551c13800f1e7476f982525c2b5277ba14b24339c68416336d160015550565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f890565b50600190565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd062000bcc7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8562001829565b62000bde333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c45440000000000000000000000000000602082015290151562000c6d5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b506040805160008082526020820190925262000c8d91879187916200075b565b95945050505050565b60015481565b600062000cc97febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e62001b0d565b905090565b7fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd062000d1b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb8362001829565b62000d2d333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c45440000000000000000000000000000602082015290151562000dbc5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b505050600155565b7fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd081565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd062000e377ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8562001829565b62000e49333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c45440000000000000000000000000000602082015290151562000ed85760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b506040805160008082526020820190925262000c8d9187918791620012b6565b600080600062000f088462000b77565b60408051808201909152601281527f5245434f5645525f444953414c4c4f5745440000000000000000000000000000602082015290151562000f975760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5062000fa26200071e565b925062000faf8362001b11565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e545241435400000000000060208201529015156200103e5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50600160a060020a0384161515620010925760405130319250600160a060020a0384169083156108fc029084906000818181858888f193505050501580156200108b573d6000803e3d6000fd5b506200115e565b5082620010af600160a060020a0382163063ffffffff62001b4016565b9150620010cd600160a060020a038216848463ffffffff62001c6016565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c454400000060208201529015156200115c5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b505b83600160a060020a031683600160a060020a03167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b7fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd0620011dc848462001829565b620011ee333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c4544000000000000000000000000000060208201529015156200127d5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b506200128b858585620019ed565b5050505050565b600091825260208281526040808420928452919052902054600160a060020a031690565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd0620013057ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8762001829565b62001317333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c454400000000000000000000000000006020820152901515620013a65760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50620013d47ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f888862001841565b620008c93088875b600080848484620013ec62001dca565b600160a060020a038416815260208082018490526060604083018181528451918401919091528351909160808401919085019080838360005b838110156200143f57818101518382015260200162001425565b50505050905090810190601f1680156200146d5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015801562001491573d6000803e3d6000fd5b5060408051600160a060020a03831681526000602082015280820187905290519192507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf47919081900360600190a1949350505050565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f90565b600062000cc97fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a62001292565b60006000196200156862000c9c565b14905090565b604080516000808252602082019092526200158d9084908490620015b8565b9392505050565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a90565b600080848484620015c862001ddb565b600160a060020a038416815260208082018490526060604083018181528451918401919091528351909160808401919085019080838360005b838110156200161b57818101518382015260200162001601565b50505050905090810190601f168015620016495780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801580156200166d573d6000803e3d6000fd5b5060408051600160a060020a03831681526001602082015280820187905290519192507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf47919081900360600190a1949350505050565b600080620016d06200150b565b9050600160a060020a03811615801590620017fc57506040517ffdef9106000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483019081528782166024840152604483018790526080606484019081528651608485015286519285169363fdef9106938b938b938b938b9360a490910190602085019080838360005b838110156200177c57818101518382015260200162001762565b50505050905090810190601f168015620017aa5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015620017cd57600080fd5b505af1158015620017e2573d6000803e3d6000fd5b505050506040513d6020811015620017f957600080fd5b50515b9695505050505050565b604080516000808252602082019092526200158d9084908490620013dc565b4390565b60606200158d838362001ce4565b8051602002815290565b60006200184f848462001292565b9050600160a060020a03811615620019035760408051808201909152601981527f4b45524e454c5f494e56414c49445f4150505f4348414e4745000000000000006020820152600160a060020a0382811690841614620018fc5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5062001910565b62001910848484620019ed565b50505050565b6200192062000c9c565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015620019ae5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50620019eb620019bd62001825565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e9063ffffffff62001d4116565b565b620019f88162001b11565b60408051808201909152601781527f4b45524e454c5f4150505f4e4f545f434f4e5452414354000000000000000000602082015290151562001a875760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5060008381526020818152604080832085845282529182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016600160a060020a03851690811790915582519081529151849286927f2ec1ae0a449b7ae354b9dacfb3ade6b6332ba26b7fcbb935835fa39dd7263b2392918290030190a3505050565b5490565b600080600160a060020a038316151562001b2f576000915062001b3a565b823b90506000811191505b50919050565b60408051600160a060020a0383166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a0823100000000000000000000000000000000000000000000000000000000179052600090818062001bc2868462001d45565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f5245564552544544000000006020820152919350915082151562001c565760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5095945050505050565b60408051600160a060020a038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260009062000c8d858262001d77565b60408051600280825260608083018452926020830190803883390190505090508281600081518110151562001d1557fe5b60209081029091010152805182908290600190811062001d3157fe5b6020908102909101015292915050565b9055565b6000806000806040516020818751602089018a5afa9250600083111562001d6b57805191505b50909590945092505050565b6000806040516020818551602087016000895af1600081111562001dc0573d801562001dac576020811462001db65762001dbe565b6001935062001dbe565b600183511493505b505b5090949350505050565b6040516106fd8062001ded83390190565b6040516106ed80620024ea833901905600608060405234801561001057600080fd5b506040516106fd3803806106fd8339810160409081528151602083015191830151909201828282600061004b8464010000000061017a810204565b61005d836401000000006101a2810204565b61006f836401000000006101d9810204565b90506000825111156101185761008d816401000000006102a9810204565b151561009857600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100cd5781810151838201526020016100b5565b50505050905090810190601f1680156100fa5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561011857600080fd5b50505050610145610137836101d9640100000000026401000000009004565b6401000000006102d6810204565b6101676101596401000000006102fb810204565b6401000000006102a9810204565b151561017257600080fd5b505050610354565b61019f6000805160206106bd8339815191528264010000000061032661032682021704565b50565b61019f7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b8264010000000061032661032682021704565b60006101ec64010000000061032a810204565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f6004820152602481018590529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b15801561027757600080fd5b505af115801561028b573d6000803e3d6000fd5b505050506040513d60208110156102a157600080fd5b505192915050565b600080600160a060020a03831615156102c557600091506102d0565b823b90506000811191505b50919050565b61019f6000805160206106dd8339815191528264010000000061032661032682021704565b60006103216000805160206106dd83398151915264010000000061031e61035082021704565b905090565b9055565b60006103216000805160206106bd83398151915264010000000061031e61035082021704565b5490565b61035a806103636000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e3565b9050610126816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101f2945050505050565b505050005b34801561013757600080fd5b50610140610233565b60408051918252519081900360200190f35b34801561015e57600080fd5b50610167610238565b604080519115158252519081900360200190f35b34801561018757600080fd5b506101906101e3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b50610140610263565b3480156101da57600080fd5b5061019061028e565b60006101ed6102b9565b905090565b60006101fd836102e4565b151561020857600080fd5b612710905060008083516020850186855a03f43d604051816000823e82801561022f578282f35b8282fd5b600190565b60006101ed7f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea61031e565b60006101ed7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b61031e565b60006101ed7f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b61031e565b60006101ed7fdee64df20d65e53d7f51cb6ab6d921a0a6a638a91e942e1d8d02df28e31c038e61031e565b60008073ffffffffffffffffffffffffffffffffffffffff8316151561030d5760009150610318565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a72305820d230d4b48e1bf39ddf39af73bad1ca668a699b5aa37506e572761e5b4207807300294172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137bdee64df20d65e53d7f51cb6ab6d921a0a6a638a91e942e1d8d02df28e31c038e608060405234801561001057600080fd5b506040516106ed3803806106ed8339810160409081528151602083015191830151909201828282600061004b84640100000000610124810204565b61005d8364010000000061014c810204565b61006f83640100000000610183810204565b90506000825111156101185761008d81640100000000610253810204565b151561009857600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100cd5781810151838201526020016100b5565b50505050905090810190601f1680156100fa5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561011857600080fd5b505050505050506102b3565b6101496000805160206106cd833981519152826401000000006103d761028082021704565b50565b6101497fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b826401000000006103d761028082021704565b6000610196640100000000610284810204565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f6004820152602481018590529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b15801561022157600080fd5b505af1158015610235573d6000803e3d6000fd5b505050506040513d602081101561024b57600080fd5b505192915050565b600080600160a060020a038316151561026f576000915061027a565b823b90506000811191505b50919050565b9055565b60006102aa6000805160206106cd8339815191526401000000006103cf6102af82021704565b905090565b5490565b61040b806102c26000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e3565b9050610126816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101fa945050505050565b505050005b34801561013757600080fd5b5061014061023b565b60408051918252519081900360200190f35b34801561015e57600080fd5b50610167610240565b604080519115158252519081900360200190f35b34801561018757600080fd5b506101906101e3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b5061014061026b565b3480156101da57600080fd5b50610190610296565b60006101f56101f061026b565b6102c1565b905090565b600061020583610395565b151561021057600080fd5b612710905060008083516020850186855a03f43d604051816000823e828015610237578282f35b8282fd5b600290565b60006101f57f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6103cf565b60006101f57fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6103cf565b60006101f57f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6103cf565b60006102cb610296565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561036357600080fd5b505af1158015610377573d6000803e3d6000fd5b505050506040513d602081101561038d57600080fd5b505192915050565b60008073ffffffffffffffffffffffffffffffffffffffff831615156103be57600091506103c9565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a72305820b3c444bb11bb0bb668251c7f0d76ce29527be3a1939bdae0eae113fdfee7eff000294172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b08c379a000000000000000000000000000000000000000000000000000000000a165627a7a72305820899a0f40d1315b16d761e84a109f45a053f3a082ca8b9ca325d95388ef414c1a0029ebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e",
  "deployedBytecode": "0x608060405260043610620001865763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630803fac081146200018b5780631113ed0d14620001b7578063178e607914620001e157806332f0a3b514620001f9578063397edd41146200022d5780634558850c146200029d578063485cc95514620002bb578063756f604914620002e75780637e7db6e114620002ff57806380cd5ac3146200032357806386070cfe146200034a5780638b3dd74914620003625780638c61757d146200037a5780638ea8dc9d1462000395578063958fde8214620003ad5780639d4941d814620003d4578063ae5b254014620003f8578063be00bbd81462000422578063c050a7a61462000440578063d162f8b014620004b0578063db8a61d4146200051c578063de2873591462000534578063de4796ed146200054c578063e156a8f31462000564578063e8187ff0146200058b578063ede658b014620005a3578063fdef9106146200060f578063ff289fc51462000681575b600080fd5b3480156200019857600080fd5b50620001a3620006a8565b604080519115158252519081900360200190f35b348015620001c457600080fd5b50620001cf620006d6565b60408051918252519081900360200190f35b348015620001ee57600080fd5b50620001cf620006fa565b3480156200020657600080fd5b50620002116200071e565b60408051600160a060020a039092168252519081900360200190f35b3480156200023a57600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452620002119482359460248035600160a060020a0316953695946064949201919081908401838280828437509497505050509135151592506200075b915050565b348015620002aa57600080fd5b506200021160043560243562000909565b348015620002c857600080fd5b50620002e5600160a060020a03600435811690602435166200092c565b005b348015620002f457600080fd5b50620001cf62000b53565b3480156200030c57600080fd5b50620001a3600160a060020a036004351662000b77565b3480156200033057600080fd5b5062000211600435600160a060020a036024351662000b7d565b3480156200035757600080fd5b50620001cf62000c96565b3480156200036f57600080fd5b50620001cf62000c9c565b3480156200038757600080fd5b50620002e560043562000cce565b348015620003a257600080fd5b50620001cf62000dc4565b348015620003ba57600080fd5b5062000211600435600160a060020a036024351662000de8565b348015620003e157600080fd5b50620002e5600160a060020a036004351662000ef8565b3480156200040557600080fd5b50620002e5600435602435600160a060020a0360443516620011af565b3480156200042f57600080fd5b506200021160043560243562001292565b3480156200044d57600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452620002119482359460248035600160a060020a031695369594606494920191908190840183828082843750949750505050913515159250620012b6915050565b348015620004bd57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845262000211948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750620013dc9650505050505050565b3480156200052957600080fd5b50620001cf620014e7565b3480156200054157600080fd5b50620002116200150b565b3480156200055957600080fd5b50620001a362001559565b3480156200057157600080fd5b5062000211600160a060020a03600435166024356200156e565b3480156200059857600080fd5b50620001cf62001594565b348015620005b057600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845262000211948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750620015b89650505050505050565b3480156200061c57600080fd5b50604080516020601f606435600481810135928301849004840285018401909552818452620001a394600160a060020a038135811695602480359092169560443595369560849401918190840183828082843750949750620016c39650505050505050565b3480156200068e57600080fd5b5062000211600160a060020a036004351660243562001806565b600080620006b562000c9c565b90508015801590620006d0575080620006cd62001825565b10155b91505090565b7f3b4bf6bf3ad5000ecf0f989d5befde585c6860fea3e574a4fab4c49d1c177d9c90565b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb90565b60015460009081527f9e3eae70920eeef6013879bf9155b985893698c145361c31365929723678b2576020526040902054600160a060020a031690565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd0620007aa7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8762001829565b620007c2333084620007bc8562001837565b620016c3565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c4544000000000000000000000000000060208201529015156200088e5760405160008051602062002bd783398151915281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200085257818101518382015260200162000838565b50505050905090810190601f168015620008805780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50620008bc7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f888862001841565b620008c9308887620015b8565b92508315620008ff57620008ff7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb8885620011af565b5050949350505050565b6000602081815292815260408082209093529081522054600160a060020a031681565b60006200093862000c9c565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015620009c65760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50620009d162001916565b62000a1e7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a85620019ed565b62000a4a307fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a6200156e565b905080600160a060020a031663c4d66de8836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801562000ac157600080fd5b505af115801562000ad6573d6000803e3d6000fd5b5062000b2a92507fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb91507fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a905083620019ed565b50507f7e852e0fcfce6551c13800f1e7476f982525c2b5277ba14b24339c68416336d160015550565b7fc681a85306374a5ab27f0bbc385296a54bcd314a1948b6cf61c4ea1bc44bb9f890565b50600190565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd062000bcc7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8562001829565b62000bde333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c45440000000000000000000000000000602082015290151562000c6d5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b506040805160008082526020820190925262000c8d91879187916200075b565b95945050505050565b60015481565b600062000cc97febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e62001b0d565b905090565b7fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd062000d1b7fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb8362001829565b62000d2d333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c45440000000000000000000000000000602082015290151562000dbc5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b505050600155565b7fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd081565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd062000e377ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8562001829565b62000e49333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c45440000000000000000000000000000602082015290151562000ed85760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b506040805160008082526020820190925262000c8d9187918791620012b6565b600080600062000f088462000b77565b60408051808201909152601281527f5245434f5645525f444953414c4c4f5745440000000000000000000000000000602082015290151562000f975760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5062000fa26200071e565b925062000faf8362001b11565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e545241435400000000000060208201529015156200103e5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50600160a060020a0384161515620010925760405130319250600160a060020a0384169083156108fc029084906000818181858888f193505050501580156200108b573d6000803e3d6000fd5b506200115e565b5082620010af600160a060020a0382163063ffffffff62001b4016565b9150620010cd600160a060020a038216848463ffffffff62001c6016565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c454400000060208201529015156200115c5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b505b83600160a060020a031683600160a060020a03167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b7fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd0620011dc848462001829565b620011ee333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c4544000000000000000000000000000060208201529015156200127d5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b506200128b858585620019ed565b5050505050565b600091825260208281526040808420928452919052902054600160a060020a031690565b60007fb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd0620013057ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f8762001829565b62001317333084620007bc8562001837565b60408051808201909152601281527f4b45524e454c5f415554485f4641494c454400000000000000000000000000006020820152901515620013a65760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50620013d47ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f888862001841565b620008c93088875b600080848484620013ec62001dca565b600160a060020a038416815260208082018490526060604083018181528451918401919091528351909160808401919085019080838360005b838110156200143f57818101518382015260200162001425565b50505050905090810190601f1680156200146d5780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f08015801562001491573d6000803e3d6000fd5b5060408051600160a060020a03831681526000602082015280820187905290519192507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf47919081900360600190a1949350505050565b7ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f90565b600062000cc97fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a62001292565b60006000196200156862000c9c565b14905090565b604080516000808252602082019092526200158d9084908490620015b8565b9392505050565b7fe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a90565b600080848484620015c862001ddb565b600160a060020a038416815260208082018490526060604083018181528451918401919091528351909160808401919085019080838360005b838110156200161b57818101518382015260200162001601565b50505050905090810190601f168015620016495780820380516001836020036101000a031916815260200191505b50945050505050604051809103906000f0801580156200166d573d6000803e3d6000fd5b5060408051600160a060020a03831681526001602082015280820187905290519192507fd880e726dced8808d727f02dd0e6fdd3a945b24bfee77e13367bcbe61ddbaf47919081900360600190a1949350505050565b600080620016d06200150b565b9050600160a060020a03811615801590620017fc57506040517ffdef9106000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483019081528782166024840152604483018790526080606484019081528651608485015286519285169363fdef9106938b938b938b938b9360a490910190602085019080838360005b838110156200177c57818101518382015260200162001762565b50505050905090810190601f168015620017aa5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015620017cd57600080fd5b505af1158015620017e2573d6000803e3d6000fd5b505050506040513d6020811015620017f957600080fd5b50515b9695505050505050565b604080516000808252602082019092526200158d9084908490620013dc565b4390565b60606200158d838362001ce4565b8051602002815290565b60006200184f848462001292565b9050600160a060020a03811615620019035760408051808201909152601981527f4b45524e454c5f494e56414c49445f4150505f4348414e4745000000000000006020820152600160a060020a0382811690841614620018fc5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5062001910565b62001910848484620019ed565b50505050565b6200192062000c9c565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015620019ae5760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b50620019eb620019bd62001825565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e9063ffffffff62001d4116565b565b620019f88162001b11565b60408051808201909152601781527f4b45524e454c5f4150505f4e4f545f434f4e5452414354000000000000000000602082015290151562001a875760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5060008381526020818152604080832085845282529182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016600160a060020a03851690811790915582519081529151849286927f2ec1ae0a449b7ae354b9dacfb3ade6b6332ba26b7fcbb935835fa39dd7263b2392918290030190a3505050565b5490565b600080600160a060020a038316151562001b2f576000915062001b3a565b823b90506000811191505b50919050565b60408051600160a060020a0383166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a0823100000000000000000000000000000000000000000000000000000000179052600090818062001bc2868462001d45565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f5245564552544544000000006020820152919350915082151562001c565760405160008051602062002bd78339815191528152600401808060200182810382528381815181526020019150805190602001908083836000838110156200085257818101518382015260200162000838565b5095945050505050565b60408051600160a060020a038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905260009062000c8d858262001d77565b60408051600280825260608083018452926020830190803883390190505090508281600081518110151562001d1557fe5b60209081029091010152805182908290600190811062001d3157fe5b6020908102909101015292915050565b9055565b6000806000806040516020818751602089018a5afa9250600083111562001d6b57805191505b50909590945092505050565b6000806040516020818551602087016000895af1600081111562001dc0573d801562001dac576020811462001db65762001dbe565b6001935062001dbe565b600183511493505b505b5090949350505050565b6040516106fd8062001ded83390190565b6040516106ed80620024ea833901905600608060405234801561001057600080fd5b506040516106fd3803806106fd8339810160409081528151602083015191830151909201828282600061004b8464010000000061017a810204565b61005d836401000000006101a2810204565b61006f836401000000006101d9810204565b90506000825111156101185761008d816401000000006102a9810204565b151561009857600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100cd5781810151838201526020016100b5565b50505050905090810190601f1680156100fa5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561011857600080fd5b50505050610145610137836101d9640100000000026401000000009004565b6401000000006102d6810204565b6101676101596401000000006102fb810204565b6401000000006102a9810204565b151561017257600080fd5b505050610354565b61019f6000805160206106bd8339815191528264010000000061032661032682021704565b50565b61019f7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b8264010000000061032661032682021704565b60006101ec64010000000061032a810204565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f6004820152602481018590529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b15801561027757600080fd5b505af115801561028b573d6000803e3d6000fd5b505050506040513d60208110156102a157600080fd5b505192915050565b600080600160a060020a03831615156102c557600091506102d0565b823b90506000811191505b50919050565b61019f6000805160206106dd8339815191528264010000000061032661032682021704565b60006103216000805160206106dd83398151915264010000000061031e61035082021704565b905090565b9055565b60006103216000805160206106bd83398151915264010000000061031e61035082021704565b5490565b61035a806103636000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e3565b9050610126816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101f2945050505050565b505050005b34801561013757600080fd5b50610140610233565b60408051918252519081900360200190f35b34801561015e57600080fd5b50610167610238565b604080519115158252519081900360200190f35b34801561018757600080fd5b506101906101e3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b50610140610263565b3480156101da57600080fd5b5061019061028e565b60006101ed6102b9565b905090565b60006101fd836102e4565b151561020857600080fd5b612710905060008083516020850186855a03f43d604051816000823e82801561022f578282f35b8282fd5b600190565b60006101ed7f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea61031e565b60006101ed7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b61031e565b60006101ed7f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b61031e565b60006101ed7fdee64df20d65e53d7f51cb6ab6d921a0a6a638a91e942e1d8d02df28e31c038e61031e565b60008073ffffffffffffffffffffffffffffffffffffffff8316151561030d5760009150610318565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a72305820d230d4b48e1bf39ddf39af73bad1ca668a699b5aa37506e572761e5b4207807300294172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137bdee64df20d65e53d7f51cb6ab6d921a0a6a638a91e942e1d8d02df28e31c038e608060405234801561001057600080fd5b506040516106ed3803806106ed8339810160409081528151602083015191830151909201828282600061004b84640100000000610124810204565b61005d8364010000000061014c810204565b61006f83640100000000610183810204565b90506000825111156101185761008d81640100000000610253810204565b151561009857600080fd5b80600160a060020a03168260405180828051906020019080838360005b838110156100cd5781810151838201526020016100b5565b50505050905090810190601f1680156100fa5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561011857600080fd5b505050505050506102b3565b6101496000805160206106cd833981519152826401000000006103d761028082021704565b50565b6101497fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b826401000000006103d761028082021704565b6000610196640100000000610284810204565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f6004820152602481018590529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b15801561022157600080fd5b505af1158015610235573d6000803e3d6000fd5b505050506040513d602081101561024b57600080fd5b505192915050565b600080600160a060020a038316151561026f576000915061027a565b823b90506000811191505b50919050565b9055565b60006102aa6000805160206106cd8339815191526401000000006103cf6102af82021704565b905090565b5490565b61040b806102c26000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634555d5c9811461012b57806348a0c8dd146101525780635c60da1b1461017b57806380afdea8146101b9578063d4aae0c4146101ce575b6127107f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6000825a10156100e15760003411361583541616156100dc576040513381523460208201527f15eeaa57c7bd188c1388020bcadc2c436ec60d647d36ef5b9eb3c742217ddee1604082a1005b600080fd5b6100e96101e3565b9050610126816000368080601f016020809104026020016040519081016040528093929190818152602001838380828437506101fa945050505050565b505050005b34801561013757600080fd5b5061014061023b565b60408051918252519081900360200190f35b34801561015e57600080fd5b50610167610240565b604080519115158252519081900360200190f35b34801561018757600080fd5b506101906101e3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101c557600080fd5b5061014061026b565b3480156101da57600080fd5b50610190610296565b60006101f56101f061026b565b6102c1565b905090565b600061020583610395565b151561021057600080fd5b612710905060008083516020850186855a03f43d604051816000823e828015610237578282f35b8282fd5b600290565b60006101f57f665fd576fbbe6f247aff98f5c94a561e3f71ec2d3c988d56f12d342396c50cea6103cf565b60006101f57fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6103cf565b60006101f57f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6103cf565b60006102cb610296565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527ff1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f600482015260248101859052905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b15801561036357600080fd5b505af1158015610377573d6000803e3d6000fd5b505050506040513d602081101561038d57600080fd5b505192915050565b60008073ffffffffffffffffffffffffffffffffffffffff831615156103be57600091506103c9565b823b90506000811191505b50919050565b5490565b5490565b9055565b90555600a165627a7a72305820b3c444bb11bb0bb668251c7f0d76ce29527be3a1939bdae0eae113fdfee7eff000294172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b08c379a000000000000000000000000000000000000000000000000000000000a165627a7a72305820899a0f40d1315b16d761e84a109f45a053f3a082ca8b9ca325d95388ef414c1a0029",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
