UNPKG

@daostack/arc-experimental

Version:

A platform for building DAOs

340 lines 63.3 kB
{ "contractName": "DAOFactory", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_avatar", "type": "address" } ], "name": "InitialSchemesSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_avatar", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_controller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_reputation", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_daotoken", "type": "address" } ], "name": "NewOrg", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_proxy", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_implementation", "type": "address" }, { "indexed": false, "internalType": "string", "name": "_contractName", "type": "string" }, { "indexed": false, "internalType": "uint64[3]", "name": "_version", "type": "uint64[3]" } ], "name": "ProxyCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_scheme", "type": "address" }, { "indexed": false, "internalType": "string", "name": "_name", "type": "string" } ], "name": "SchemeInstance", "type": "event" }, { "inputs": [], "name": "PACKAGE_NAME", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract Avatar", "name": "_avatar", "type": "address" }, { "internalType": "address[]", "name": "_founders", "type": "address[]" }, { "internalType": "uint256[]", "name": "_foundersTokenAmount", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "_foundersReputationAmount", "type": "uint256[]" } ], "name": "addFounders", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "app", "outputs": [ { "internalType": "contract App", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64[3]", "name": "_packageVersion", "type": "uint64[3]" }, { "internalType": "string", "name": "_contractName", "type": "string" }, { "internalType": "address", "name": "_admin", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "createInstance", "outputs": [ { "internalType": "contract AdminUpgradeabilityProxy", "name": "", "type": "address" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint64[3]", "name": "_packageVersion", "type": "uint64[3]" }, { "internalType": "string", "name": "_contractName", "type": "string" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "createNonUpgradableInstance", "outputs": [ { "internalType": "contract UpgradeabilityProxy", "name": "", "type": "address" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_encodedForgeOrgParams", "type": "bytes" }, { "internalType": "bytes", "name": "_encodedSetSchemesParams", "type": "bytes" } ], "name": "forgeOrg", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64[3]", "name": "_version", "type": "uint64[3]" }, { "internalType": "string", "name": "_contractName", "type": "string" } ], "name": "getImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64[3]", "name": "_version", "type": "uint64[3]" } ], "name": "getPackageVersion", "outputs": [ { "internalType": "uint64[3]", "name": "version", "type": "uint64[3]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_appContractAddress", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "locks", "outputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract Avatar", "name": "_avatar", "type": "address" }, { "internalType": "bytes", "name": "_encodedSetSchemesParams", "type": "bytes" } ], "name": "setSchemes", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5061368b806100206000396000f3fe608060405260043610620000aa5760003560e01c806361fe0613116200006d57806361fe061314620001835780636cf00fa414620001b757806396d85eee14620001dc578063b76564bd14620001f3578063c4d66de8146200020b578063d052ec0f146200023057620000aa565b80632346e68b14620000af57806331e3f2f214620000ec5780634da5fa371462000103578063571084bd146200012a5780635de9a137146200015e575b600080fd5b348015620000bc57600080fd5b50620000d4620000ce366004620020cd565b62000257565b604051620000e39190620025a4565b60405180910390f35b620000d4620000fd366004620021b0565b62000414565b3480156200011057600080fd5b5062000128620001223660046200236f565b620004c7565b005b3480156200013757600080fd5b506200014f62000149366004620022bb565b620005fe565b604051620000e39190620026b9565b3480156200016b57600080fd5b50620000d46200017d36600462001f96565b620009b2565b3480156200019057600080fd5b50620001a8620001a2366004620020af565b620009cd565b604051620000e39190620026a9565b348015620001c457600080fd5b50620000d4620001d63660046200224c565b62000be1565b620000d4620001ed3660046200211f565b62000cd6565b3480156200020057600080fd5b50620000d462000d8c565b3480156200021857600080fd5b50620001286200022a36600462001f96565b62000d9b565b3480156200023d57600080fd5b506200024862000e43565b604051620000e39190620026c4565b603454604080518082018252600881526744414f737461636b60c01b602082015290516387c6048360e01b815260009283926001600160a01b03909116916387c6048391620002a991600401620026c4565b60806040518083038186803b158015620002c257600080fd5b505afa158015620002d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fd9190620023c7565b5090506000816001600160a01b0316631df40eaa866040518263ffffffff1660e01b8152600401620003309190620026a9565b60206040518083038186803b1580156200034957600080fd5b505afa1580156200035e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000384919062001fb5565b6040516335b41c4b60e11b81529091506001600160a01b03821690636b68389690620003b5908790600401620026c4565b60206040518083038186803b158015620003ce57600080fd5b505afa158015620003e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000409919062001fb5565b925050505b92915050565b60006200042062001b15565b6200042b85620009cd565b905060006200043b828662000257565b90506000348286604051620004509062001b33565b6200045d92919062002662565b6040518091039082f09050801580156200047b573d6000803e3d6000fd5b5090507f3918796d81cd197899a48fa2babaac969d1125c889cfbcc3a0f12cdc93c87a5981838886604051620004b59493929190620025d2565b60405180910390a19695505050505050565b6001600160a01b038381166000908152603360205260409020541633146200050c5760405162461bcd60e51b8152600401620005039062002859565b60405180910390fd5b620005c18383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506001600160a01b038a16815260336020526040808220815160608101928390529550600101935060039250908390855b82829054906101000a90046001600160401b03166001600160401b03168152602001906008019060208260070104928301926001038202915080841162000573579050505050505062000e67565b6001600160a01b038316600090815260336020526040812080546001600160a01b031916815590620005f7600183018262001b41565b5050505050565b6000858414620006225760405162461bcd60e51b815260040162000503906200280c565b858214620006445760405162461bcd60e51b815260040162000503906200293a565b85620006645760405162461bcd60e51b8152600401620005039062002915565b6001600160a01b03888116600090815260336020526040902054163314620006a05760405162461bcd60e51b8152600401620005039062002859565b60005b86811015620009a3576000888883818110620006bb57fe5b9050602002016020810190620006d2919062001f96565b6001600160a01b03161415620006fc5760405162461bcd60e51b815260040162000503906200275c565b60008686838181106200070b57fe5b9050602002013511156200084b57886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200075357600080fd5b505afa15801562000768573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200078e919062001fb5565b6001600160a01b03166310c5b328878784818110620007a957fe5b905060200201358a8a85818110620007bd57fe5b9050602002016020810190620007d4919062001f96565b6040518363ffffffff1660e01b8152600401620007f39291906200298c565b602060405180830381600087803b1580156200080e57600080fd5b505af115801562000823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200084991906200222a565b505b60008484838181106200085a57fe5b9050602002013511156200099a57886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620008a257600080fd5b505afa158015620008b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008dd919062001fb5565b6001600160a01b031663dea9e24d858584818110620008f857fe5b905060200201358a8a858181106200090c57fe5b905060200201602081019062000923919062001f96565b6040518363ffffffff1660e01b8152600401620009429291906200298c565b602060405180830381600087803b1580156200095d57600080fd5b505af115801562000972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200099891906200222a565b505b600101620006a3565b50600198975050505050505050565b6033602052600090815260409020546001600160a01b031681565b620009d762001b15565b6000620009e362001b15565b603454604080518082018252600881526744414f737461636b60c01b602082015290516387c6048360e01b81526001600160a01b03909216916387c604839162000a3091600401620026c4565b60806040518083038186803b15801562000a4957600080fd5b505afa15801562000a5e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a849190620023c7565b604051630efa075560e11b815291935091506000906001600160a01b03841690631df40eaa9062000aba908890600401620026a9565b60206040518083038186803b15801562000ad357600080fd5b505afa15801562000ae8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b0e919062001fb5565b6001600160a01b0316141562000bd657604051630efa075560e11b81526000906001600160a01b03841690631df40eaa9062000b4f908590600401620026a9565b60206040518083038186803b15801562000b6857600080fd5b505afa15801562000b7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ba3919062001fb5565b6001600160a01b0316141562000bcd5760405162461bcd60e51b8152600401620005039062002717565b80925062000bda565b8392505b5050919050565b6000606080606080606062000bf562001b15565b62000c038a8c018c62002454565b95509550955095509550955062000c1962001b15565b62000c2482620009cd565b9050600062000c3888888888888762001282565b9050891562000c8b5762000c85818c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925062000e67915050565b62000cc6565b6001600160a01b038116600090815260336020526040902080546001600160a01b0319163317815562000cc49060010183600362001b48565b505b9c9b505050505050505050505050565b600062000ce262001b15565b62000ced86620009cd565b9050600062000cfd828762000257565b905060003482878760405162000d139062001bf4565b62000d219392919062002611565b6040518091039082f090508015801562000d3f573d6000803e3d6000fd5b5090507f3918796d81cd197899a48fa2babaac969d1125c889cfbcc3a0f12cdc93c87a598183898660405162000d799493929190620025d2565b60405180910390a1979650505050505050565b6034546001600160a01b031681565b600054610100900460ff168062000db7575062000db76200189f565b8062000dc6575060005460ff16155b62000de55760405162461bcd60e51b81526004016200050390620028c7565b600054610100900460ff1615801562000e11576000805460ff1961ff0019909116610100171660011790555b603480546001600160a01b0319166001600160a01b038416179055801562000e3f576000805461ff00191690555b5050565b6040518060400160405280600881526020016744414f737461636b60c01b81525081565b60608060608060608680602001905181019062000e85919062001fd4565b945094509450945094506000886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ecb57600080fd5b505afa15801562000ee0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f06919062001fb5565b90506000805b87518110156200114457606062000f438388848151811062000f2a57fe5b60200260200101518a620018a59092919063ffffffff16565b9050600481511062000ff05762000f5e8160006004620018a5565b905062000f8f8c60405160200162000f779190620025a4565b60408051601f1981840301815291905282906200193c565b905062000fed62000fe56024808a868151811062000fa957fe5b60200260200101510362000fdd878c888151811062000fc457fe5b60200260200101518e620018a59092919063ffffffff16565b9190620018a5565b82906200193c565b90505b60006200101e8b620010168c86815181106200100857fe5b6020026020010151620019bd565b8f8562000cd6565b9050806001600160a01b03167fd7aeea804cd95f56138ce36cac2d6e5099e9a2fb7cd120f8d474e5479c2297386200105c8c86815181106200100857fe5b6040516200106b9190620026c4565b60405180910390a2846001600160a01b0316635d1da8cb828986815181106200109057fe5b60200260200101516040518363ffffffff1660e01b8152600401620010b79291906200263f565b602060405180830381600087803b158015620010d257600080fd5b505af1158015620010e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200110d91906200222a565b50620011378884815181106200111f57fe5b60200260200101518562001ae690919063ffffffff16565b9350505060010162000f0c565b50604051632242b11b60e21b81526001600160a01b0383169063890ac46c9062001173908690600401620026c4565b602060405180830381600087803b1580156200118e57600080fd5b505af1158015620011a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011c991906200222a565b50816001600160a01b0316636bafaa596040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200120657600080fd5b505af11580156200121b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200124191906200222a565b506040516001600160a01b038b16907f9007c9042f12be953f7dbe3909f56c3f088e9fe294dbebbef4a67afa63462b6a90600090a250505050505050505050565b60008351855114620012a85760405162461bcd60e51b815260040162000503906200280c565b8251855114620012cc5760405162461bcd60e51b815260040162000503906200293a565b6000620012fb83604051806040016040528060088152602001672220a7aa37b5b2b760c11b8152508962000414565b905060006200136b846040518060400160405280600a8152602001692932b83aba30ba34b7b760b11b81525030306040516024016200133b9190620025a4565b60408051601f198184030181529190526020810180516001600160e01b031663189acdbd60e31b17905262000cd6565b90506000620013dd856040518060400160405280600681526020016520bb30ba30b960d11b815250308d878730604051602401620013ad9493929190620026d9565b60408051601f198184030181529190526020810180516001600160e01b0316633cd208ad60e21b17905262000cd6565b6040516308f2839760e41b81529091506001600160a01b03831690638f283970906200140e908490600401620025a4565b600060405180830381600087803b1580156200142957600080fd5b505af11580156200143e573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b0384169250638f283970915062001470908490600401620025a4565b600060405180830381600087803b1580156200148b57600080fd5b505af1158015620014a0573d6000803e3d6000fd5b5050505060005b8851811015620016a05760006001600160a01b0316898281518110620014c957fe5b60200260200101516001600160a01b03161415620014fb5760405162461bcd60e51b8152600401620005039062002890565b60008882815181106200150a57fe5b60200260200101511115620015c957836001600160a01b03166340c10f198a83815181106200153557fe5b60200260200101518a84815181106200154a57fe5b60200260200101516040518363ffffffff1660e01b81526004016200157192919062002690565b602060405180830381600087803b1580156200158c57600080fd5b505af1158015620015a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015c791906200222a565b505b6000878281518110620015d857fe5b602002602001015111156200169757826001600160a01b03166340c10f198a83815181106200160357fe5b60200260200101518984815181106200161857fe5b60200260200101516040518363ffffffff1660e01b81526004016200163f92919062002690565b602060405180830381600087803b1580156200165a57600080fd5b505af11580156200166f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200169591906200222a565b505b600101620014a7565b50600062001711866040518060400160405280600a81526020016921b7b73a3937b63632b960b11b815250848530604051602401620016e1929190620025b8565b60408051601f198184030181529190526020810180516001600160e01b031663485cc95560e01b17905262000cd6565b60405163f2fde38b60e01b81529091506001600160a01b0383169063f2fde38b9062001742908490600401620025a4565b600060405180830381600087803b1580156200175d57600080fd5b505af115801562001772573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b038716925063f2fde38b9150620017a4908490600401620025a4565b600060405180830381600087803b158015620017bf57600080fd5b505af1158015620017d4573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b038616925063f2fde38b915062001806908490600401620025a4565b600060405180830381600087803b1580156200182157600080fd5b505af115801562001836573d6000803e3d6000fd5b50505050826001600160a01b0316816001600160a01b0316836001600160a01b03167f7c9ce34d490425d6909c8542650b59e8c11074274a3ff906359b4edc3d69505187604051620018899190620025a4565b60405180910390a4509998505050505050505050565b303b1590565b6060620018b3838362001ae6565b84511015620018d65760405162461bcd60e51b81526004016200050390620027ca565b606082158015620018e75762001933565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156200192257805183526020928301920162001908565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b818310156200196f57805183526020928301920162001955565b50855184518101855292509050808201602086015b818310156200199e57805183526020928301920162001984565b508651929092011591909101601f01601f191660405250905092915050565b6040805160208082528183019092526060918291906020820181803683370190505090506000805b602081101562001a3f576008810260020a85026001600160f81b031981161562001a35578084848151811062001a1757fe5b60200101906001600160f81b031916908160001a9053506001909201915b50600101620019e5565b6060826001600160401b038111801562001a5857600080fd5b506040519080825280601f01601f19166020018201604052801562001a84576020820181803683370190505b509050600091505b8282101562001add5783828151811062001aa257fe5b602001015160f81c60f81b81838151811062001aba57fe5b60200101906001600160f81b031916908160001a90535060019091019062001a8c565b95945050505050565b60008282018381101562001b0e5760405162461bcd60e51b8152600401620005039062002793565b9392505050565b60405180606001604052806003906020820280368337509192915050565b6103178062002a6d83390190565b5060009055565b60018301918390821562001be25791602002820160005b8382111562001bab57835183826101000a8154816001600160401b0302191690836001600160401b03160217905550926020019260080160208160070104928301926001030262001b5f565b801562001be05782816101000a8154906001600160401b03021916905560080160208160070104928301926001030262001bab565b505b5062001bf092915062001c02565b5090565b6108d28062002d8483390190565b5b8082111562001bf057805467ffffffffffffffff1916815560010162001c03565b60008083601f84011262001c36578182fd5b5081356001600160401b0381111562001c4d578182fd5b602083019150836020808302850101111562001c6857600080fd5b9250929050565b600082601f83011262001c80578081fd5b813562001c9762001c9182620029ca565b620029a3565b81815291506020808301908481018184028601820187101562001cb957600080fd5b60005b8481101562001ce557813562001cd28162002a3d565b8452928201929082019060010162001cbc565b505050505092915050565b600082601f83011262001d01578081fd5b815162001d1262001c9182620029ca565b81815291506020808301908481018184028601820187101562001d3457600080fd5b60005b8481101562001ce55781518452928201929082019060010162001d37565b600082601f83011262001d66578081fd5b815162001d7762001c9182620029ca565b81815291506020808301908481018184028601820187101562001d9957600080fd5b6000805b8581101562001dd15782516001600160e01b03198116811462001dbe578283fd5b8552938301939183019160010162001d9d565b50505050505092915050565b600082601f83011262001dee578081fd5b813562001dff62001c9182620029ca565b81815291506020808301908481018184028601820187101562001e2157600080fd5b60005b8481101562001ce55781358452928201929082019060010162001e24565b600082601f83011262001e53578081fd5b62001e5f6060620029a3565b905080828460608501111562001e7457600080fd5b60005b600381101562001ea457813562001e8e8162002a56565b8352602092830192919091019060010162001e77565b50505092915050565b60008083601f84011262001ebf578182fd5b5081356001600160401b0381111562001ed6578182fd5b60208301915083602082850101111562001c6857600080fd5b600082601f83011262001f00578081fd5b813562001f1162001c9182620029ea565b915080825283602082850101111562001f2957600080fd5b8060208401602084013760009082016020015292915050565b600082601f83011262001f53578081fd5b815162001f6462001c9182620029ea565b915080825283602082850101111562001f7c57600080fd5b62001f8f81602084016020860162002a0e565b5092915050565b60006020828403121562001fa8578081fd5b813562001b0e8162002a3d565b60006020828403121562001fc7578081fd5b815162001b0e8162002a3d565b600080600080600060a0868803121562001fec578081fd5b85516001600160401b038082111562002003578283fd5b6200201189838a0162001cf0565b9650602088015191508082111562002027578283fd5b6200203589838a0162001f42565b955060408801519150808211156200204b578283fd5b6200205989838a0162001cf0565b945060608801519150808211156200206f578283fd5b6200207d89838a0162001d55565b9350608088015191508082111562002093578283fd5b50620020a28882890162001f42565b9150509295509295909350565b600060608284031215620020c1578081fd5b62001b0e838362001e42565b60008060808385031215620020e0578182fd5b620020ec848462001e42565b915060608301356001600160401b0381111562002107578182fd5b620021158582860162001eef565b9150509250929050565b60008060008060c0858703121562002135578182fd5b62002141868662001e42565b935060608501356001600160401b03808211156200215d578384fd5b6200216b8883890162001eef565b9450608087013591506200217f8262002a3d565b90925060a0860135908082111562002195578283fd5b50620021a48782880162001eef565b91505092959194509250565b600080600060a08486031215620021c5578081fd5b620021d1858562001e42565b925060608401356001600160401b0380821115620021ed578283fd5b620021fb8783880162001eef565b9350608086013591508082111562002211578283fd5b50620022208682870162001eef565b9150509250925092565b6000602082840312156200223c578081fd5b8151801515811462001b0e578182fd5b6000806000806040858703121562002262578182fd5b84356001600160401b038082111562002279578384fd5b620022878883890162001ead565b90965094506020870135915080821115620022a0578384fd5b50620022af8782880162001ead565b95989497509550505050565b60008060008060008060006080888a031215620022d6578485fd5b8735620022e38162002a3d565b965060208801356001600160401b0380821115620022ff578687fd5b6200230d8b838c0162001c24565b909850965060408a013591508082111562002326578384fd5b620023348b838c0162001c24565b909650945060608a01359150808211156200234d578384fd5b506200235c8a828b0162001c24565b989b979a50959850939692959293505050565b60008060006040848603121562002384578081fd5b8335620023918162002a3d565b925060208401356001600160401b03811115620023ac578182fd5b620023ba8682870162001ead565b9497909650939450505050565b60008060808385031215620023da578182fd5b8251620023e78162002a3d565b91506020603f84018513620023fa578182fd5b620024066060620029a3565b80828601876080880111156200241a578485fd5b845b600381101562002446578151620024338162002a56565b845292840192908401906001016200241c565b509497909650945050505050565b60008060008060008061010087890312156200246e578384fd5b86356001600160401b038082111562002485578586fd5b620024938a838b0162001eef565b97506020890135915080821115620024a9578586fd5b620024b78a838b0162001eef565b96506040890135915080821115620024cd578586fd5b620024db8a838b0162001c6f565b95506060890135915080821115620024f1578384fd5b620024ff8a838b0162001ddd565b9450608089013591508082111562002515578384fd5b506200252489828a0162001ddd565b925050620025368860a0890162001e42565b90509295509295509295565b8060005b6003811015620025705781516001600160401b031684526020938401939091019060010162002546565b50505050565b600081518084526200259081602086016020860162002a0e565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0385811682528416602082015260c060408201819052600090620026009083018562002576565b905062001add606083018462002542565b6001600160a01b0384811682528316602082015260606040820181905260009062001add9083018462002576565b6001600160a01b039290921682526001600160e01b031916602082015260400190565b6001600160a01b0383168152604060208201819052600090620026889083018462002576565b949350505050565b6001600160a01b03929092168252602082015260400190565b606081016200040e828462002542565b901515815260200190565b60006020825262001b0e602083018462002576565b600060808252620026ee608083018762002576565b6001600160a01b0395861660208401529385166040830152509216606090920191909152919050565b60208082526025908201527f496d706c656d656e746174696f6e50726f766964657220646f6573206e6f7420604082015264195e1a5cdd60da1b606082015260800190565b6020808252601b908201527f666f756e64657220616464726573732063616e6e6f7420626520300000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526022908201527f5f62797465732e6c656e677468203c20285f7374617274202b205f6c656e6774604082015261682960f01b606082015260800190565b6020808252602d908201527f5f666f756e6465726c656e67746820213d205f666f756e64657273546f6b656e60408201526c082dadeeadce85cd8cadccee8d609b1b606082015260800190565b6020808252601e908201527f73656e646572206973206e6f7420686f6c64696e6720746865206c6f636b0000604082015260600190565b6020808252601e908201527f666f756e64657220616464726573732063616e6e6f74206265207a65726f0000604082015260600190565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600b908201526a6e6f20666f756e6465727360a81b604082015260600190565b60208082526032908201527f5f666f756e6465726c656e67746820213d205f666f756e6465727352657075746040820152710c2e8d2dedc82dadeeadce85cd8cadccee8d60731b606082015260800190565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b0381118282101715620029c257600080fd5b604052919050565b60006001600160401b03821115620029e0578081fd5b5060209081020190565b60006001600160401b0382111562002a00578081fd5b50601f01601f191660200190565b60005b8381101562002a2b57818101518382015260200162002a11565b83811115620025705750506000910152565b6001600160a01b038116811462002a5357600080fd5b50565b6001600160401b038116811462002a5357600080fdfe60806040526040516103173803806103178339818101604052604081101561002657600080fd5b81516020830180516040519294929383019291908464010000000082111561004d57600080fd5b90830190602082018581111561006257600080fd5b825164010000000081118282018810171561007c57600080fd5b82525081516020918201929091019080838360005b838110156100a9578181015183820152602001610091565b50505050905090810190601f1680156100d65780820380516001836020036101000a031916815260200191505b50604052506100e3915050565b6100ec826101ab565b8051156101a4576000826001600160a01b0316826040518082805190602001908083835b6020831061012f5780518252601f199092019160209182019101610110565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461018f576040519150601f19603f3d011682016040523d82523d6000602084013e610194565b606091505b50509050806101a257600080fd5b505b5050610223565b6101be8161021d60201b6100271760201c565b6101f95760405162461bcd60e51b815260040180806020018281038252603b8152602001806102dc603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b151590565b60ab806102316000396000f3fe608060405236601057600e6013565b005b600e5b60196025565b60256021602d565b6052565b565b3b151590565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e8080156070573d6000f35b3d6000fdfea2646970667358221220877db6715e40b6844f466e62b7dae9653d964f1cda4f0d5e77f1fbf6c2076fa864736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e7472616374206164647265737360806040526040516108d23803806108d28339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6103b41760201c565b61020d5760405162461bcd60e51b815260040180806020018281038252603b815260200180610897603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61062d8061026a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101185780638f28397014610149578063f851a4401461017c5761005d565b3661005d5761005b610191565b005b61005b610191565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101ab565b61005b600480360360408110156100ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b5090925090506101e5565b34801561012457600080fd5b5061012d610292565b604080516001600160a01b039092168252519081900360200190f35b34801561015557600080fd5b5061005b6004803603602081101561016c57600080fd5b50356001600160a01b03166102cf565b34801561018857600080fd5b5061012d610389565b6101996103ba565b6101a96101a461041a565b61043f565b565b6101b3610463565b6001600160a01b0316336001600160a01b031614156101da576101d581610488565b6101e2565b6101e2610191565b50565b6101ed610463565b6001600160a01b0316336001600160a01b031614156102855761020f83610488565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026c576040519150601f19603f3d011682016040523d82523d6000602084013e610271565b606091505b505090508061027f57600080fd5b5061028d565b61028d610191565b505050565b600061029c610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd61041a565b90506102cc565b6102cc610191565b90565b6102d7610463565b6001600160a01b0316336001600160a01b031614156101da576001600160a01b0381166103355760405162461bcd60e51b81526004018080602001828103825260368152602001806105876036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035e610463565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d5816104c8565b6000610393610463565b6001600160a01b0316336001600160a01b031614156102c4576102bd610463565b3b151590565b6103c2610463565b6001600160a01b0316336001600160a01b031614156104125760405162461bcd60e51b81526004018080602001828103825260328152602001806105556032913960400191505060405180910390fd5b6101a96101a9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045e573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610491816104ec565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f5816103b4565b6105305760405162461bcd60e51b815260040180806020018281038252603b8152602001806105bd603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212203ca74514dac320135b43e4097015fc2191283471651cff1fc022edd468f3874764736f6c634300060c003343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212205155d234cd50f913ffdeb28b77a2572533bbd754388c5d490c1395864927948564736f6c634300060c0033", "deployedBytecode": "0x608060405260043610620000aa5760003560e01c806361fe0613116200006d57806361fe061314620001835780636cf00fa414620001b757806396d85eee14620001dc578063b76564bd14620001f3578063c4d66de8146200020b578063d052ec0f146200023057620000aa565b80632346e68b14620000af57806331e3f2f214620000ec5780634da5fa371462000103578063571084bd146200012a5780635de9a137146200015e575b600080fd5b348015620000bc57600080fd5b50620000d4620000ce366004620020cd565b62000257565b604051620000e39190620025a4565b60405180910390f35b620000d4620000fd366004620021b0565b62000414565b3480156200011057600080fd5b5062000128620001223660046200236f565b620004c7565b005b3480156200013757600080fd5b506200014f62000149366004620022bb565b620005fe565b604051620000e39190620026b9565b3480156200016b57600080fd5b50620000d46200017d36600462001f96565b620009b2565b3480156200019057600080fd5b50620001a8620001a2366004620020af565b620009cd565b604051620000e39190620026a9565b348015620001c457600080fd5b50620000d4620001d63660046200224c565b62000be1565b620000d4620001ed3660046200211f565b62000cd6565b3480156200020057600080fd5b50620000d462000d8c565b3480156200021857600080fd5b50620001286200022a36600462001f96565b62000d9b565b3480156200023d57600080fd5b506200024862000e43565b604051620000e39190620026c4565b603454604080518082018252600881526744414f737461636b60c01b602082015290516387c6048360e01b815260009283926001600160a01b03909116916387c6048391620002a991600401620026c4565b60806040518083038186803b158015620002c257600080fd5b505afa158015620002d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fd9190620023c7565b5090506000816001600160a01b0316631df40eaa866040518263ffffffff1660e01b8152600401620003309190620026a9565b60206040518083038186803b1580156200034957600080fd5b505afa1580156200035e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000384919062001fb5565b6040516335b41c4b60e11b81529091506001600160a01b03821690636b68389690620003b5908790600401620026c4565b60206040518083038186803b158015620003ce57600080fd5b505afa158015620003e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000409919062001fb5565b925050505b92915050565b60006200042062001b15565b6200042b85620009cd565b905060006200043b828662000257565b90506000348286604051620004509062001b33565b6200045d92919062002662565b6040518091039082f09050801580156200047b573d6000803e3d6000fd5b5090507f3918796d81cd197899a48fa2babaac969d1125c889cfbcc3a0f12cdc93c87a5981838886604051620004b59493929190620025d2565b60405180910390a19695505050505050565b6001600160a01b038381166000908152603360205260409020541633146200050c5760405162461bcd60e51b8152600401620005039062002859565b60405180910390fd5b620005c18383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506001600160a01b038a16815260336020526040808220815160608101928390529550600101935060039250908390855b82829054906101000a90046001600160401b03166001600160401b03168152602001906008019060208260070104928301926001038202915080841162000573579050505050505062000e67565b6001600160a01b038316600090815260336020526040812080546001600160a01b031916815590620005f7600183018262001b41565b5050505050565b6000858414620006225760405162461bcd60e51b815260040162000503906200280c565b858214620006445760405162461bcd60e51b815260040162000503906200293a565b85620006645760405162461bcd60e51b8152600401620005039062002915565b6001600160a01b03888116600090815260336020526040902054163314620006a05760405162461bcd60e51b8152600401620005039062002859565b60005b86811015620009a3576000888883818110620006bb57fe5b9050602002016020810190620006d2919062001f96565b6001600160a01b03161415620006fc5760405162461bcd60e51b815260040162000503906200275c565b60008686838181106200070b57fe5b9050602002013511156200084b57886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200075357600080fd5b505afa15801562000768573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200078e919062001fb5565b6001600160a01b03166310c5b328878784818110620007a957fe5b905060200201358a8a85818110620007bd57fe5b9050602002016020810190620007d4919062001f96565b6040518363ffffffff1660e01b8152600401620007f39291906200298c565b602060405180830381600087803b1580156200080e57600080fd5b505af115801562000823573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200084991906200222a565b505b60008484838181106200085a57fe5b9050602002013511156200099a57886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620008a257600080fd5b505afa158015620008b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008dd919062001fb5565b6001600160a01b031663dea9e24d858584818110620008f857fe5b905060200201358a8a858181106200090c57fe5b905060200201602081019062000923919062001f96565b6040518363ffffffff1660e01b8152600401620009429291906200298c565b602060405180830381600087803b1580156200095d57600080fd5b505af115801562000972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200099891906200222a565b505b600101620006a3565b50600198975050505050505050565b6033602052600090815260409020546001600160a01b031681565b620009d762001b15565b6000620009e362001b15565b603454604080518082018252600881526744414f737461636b60c01b602082015290516387c6048360e01b81526001600160a01b03909216916387c604839162000a3091600401620026c4565b60806040518083038186803b15801562000a4957600080fd5b505afa15801562000a5e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a849190620023c7565b604051630efa075560e11b815291935091506000906001600160a01b03841690631df40eaa9062000aba908890600401620026a9565b60206040518083038186803b15801562000ad357600080fd5b505afa15801562000ae8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b0e919062001fb5565b6001600160a01b0316141562000bd657604051630efa075560e11b81526000906001600160a01b03841690631df40eaa9062000b4f908590600401620026a9565b60206040518083038186803b15801562000b6857600080fd5b505afa15801562000b7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ba3919062001fb5565b6001600160a01b0316141562000bcd5760405162461bcd60e51b8152600401620005039062002717565b80925062000bda565b8392505b5050919050565b6000606080606080606062000bf562001b15565b62000c038a8c018c62002454565b95509550955095509550955062000c1962001b15565b62000c2482620009cd565b9050600062000c3888888888888762001282565b9050891562000c8b5762000c85818c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925062000e67915050565b62000cc6565b6001600160a01b038116600090815260336020526040902080546001600160a01b0319163317815562000cc49060010183600362001b48565b505b9c9b505050505050505050505050565b600062000ce262001b15565b62000ced86620009cd565b9050600062000cfd828762000257565b905060003482878760405162000d139062001bf4565b62000d219392919062002611565b6040518091039082f090508015801562000d3f573d6000803e3d6000fd5b5090507f3918796d81cd197899a48fa2babaac969d1125c889cfbcc3a0f12cdc93c87a598183898660405162000d799493929190620025d2565b60405180910390a1979650505050505050565b6034546001600160a01b031681565b600054610100900460ff168062000db7575062000db76200189f565b8062000dc6575060005460ff16155b62000de55760405162461bcd60e51b81526004016200050390620028c7565b600054610100900460ff1615801562000e11576000805460ff1961ff0019909116610100171660011790555b603480546001600160a01b0319166001600160a01b038416179055801562000e3f576000805461ff00191690555b5050565b6040518060400160405280600881526020016744414f737461636b60c01b81525081565b60608060608060608680602001905181019062000e85919062001fd4565b945094509450945094506000886001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ecb57600080fd5b505afa15801562000ee0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f06919062001fb5565b90506000805b87518110156200114457606062000f438388848151811062000f2a57fe5b60200260200101518a620018a59092919063ffffffff16565b9050600481511062000ff05762000f5e8160006004620018a5565b905062000f8f8c60405160200162000f779190620025a4565b60408051601f1981840301815291905282906200193c565b905062000fed62000fe56024808a868151811062000fa957fe5b60200260200101510362000fdd878c888151811062000fc457fe5b60200260200101518e620018a59092919063ffffffff16565b9190620018a5565b82906200193c565b90505b60006200101e8b620010168c86815181106200100857fe5b6020026020010151620019bd565b8f8562000cd6565b9050806001600160a01b03167fd7aeea804cd95f56138ce36cac2d6e5099e9a2fb7cd120f8d474e5479c2297386200105c8c86815181106200100857fe5b6040516200106b9190620026c4565b60405180910390a2846001600160a01b0316635d1da8cb828986815181106200109057fe5b60200260200101516040518363ffffffff1660e01b8152600401620010b79291906200263f565b602060405180830381600087803b158015620010d257600080fd5b505af1158015620010e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200110d91906200222a565b50620011378884815181106200111f57fe5b60200260200101518562001ae690919063ffffffff16565b9350505060010162000f0c565b50604051632242b11b60e21b81526001600160a01b0383169063890ac46c9062001173908690600401620026c4565b602060405180830381600087803b1580156200118e57600080fd5b505af1158015620011a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011c991906200222a565b50816001600160a01b0316636bafaa596040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200120657600080fd5b505af11580156200121b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200124191906200222a565b506040516001600160a01b038b16907f9007c9042f12be953f7dbe3909f56c3f088e9fe294dbebbef4a67afa63462b6a90600090a250505050505050505050565b60008351855114620012a85760405162461bcd60e51b815260040162000503906200280c565b8251855114620012cc5760405162461bcd60e51b815260040162000503906200293a565b6000620012fb83604051806040016040528060088152602001672220a7aa37b5b2b760c11b8152508962000414565b905060006200136b846040518060400160405280600a8152602001692932b83aba30ba34b7b760b11b81525030306040516024016200133b9190620025a4565b60408051601f198184030181529190526020810180516001600160e01b031663189acdbd60e31b17905262000cd6565b90506000620013dd856040518060400160405280600681526020016520bb30ba30b960d11b815250308d878730604051602401620013ad9493929190620026d9565b60408051601f198184030181529190526020810180516001600160e01b0316633cd208ad60e21b17905262000cd6565b6040516308f2839760e41b81529091506001600160a01b03831690638f283970906200140e908490600401620025a4565b600060405180830381600087803b1580156200142957600080fd5b505af11580156200143e573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b0384169250638f283970915062001470908490600401620025a4565b600060405180830381600087803b1580156200148b57600080fd5b505af1158015620014a0573d6000803e3d6000fd5b5050505060005b8851811015620016a05760006001600160a01b0316898281518110620014c957fe5b60200260200101516001600160a01b03161415620014fb5760405162461bcd60e51b8152600401620005039062002890565b60008882815181106200150a57fe5b60200260200101511115620015c957836001600160a01b03166340c10f198a83815181106200153557fe5b60200260200101518a84815181106200154a57fe5b60200260200101516040518363ffffffff1660e01b81526004016200157192919062002690565b602060405180830381600087803b1580156200158c57600080fd5b505af1158015620015a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015c791906200222a565b505b6000878281518110620015d857fe5b602002602001015111156200169757826001600160a01b03166340c10f198a83815181106200160357fe5b60200260200101518984815181106200161857fe5b60200260200101516040518363ffffffff1660e01b81526004016200163f92919062002690565b602060405180830381600087803b1580156200165a57600080fd5b505af11580156200166f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200169591906200222a565b505b600101620014a7565b50600062001711866040518060400160405280600a81526020016921b7b73a3937b63632b960b11b815250848530604051602401620016e1929190620025b8565b60408051601f198184030181529190526020810180516001600160e01b031663485cc95560e01b17905262000cd6565b60405163f2fde38b60e01b81529091506001600160a01b0383169063f2fde38b9062001742908490600401620025a4565b600060405180830381600087803b1580156200175d57600080fd5b505af115801562001772573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b038716925063f2fde38b9150620017a4908490600401620025a4565b600060405180830381600087803b158015620017bf57600080fd5b505af1158015620017d4573d6000803e3d6000fd5b505060405163f2fde38b60e01b81526001600160a01b038616925063f2fde38b915062001806908490600401620025a4565b600060405180830381600087803b1580156200182157600080fd5b505af115801562001836573d6000803e3d6000fd5b50505050826001600160a01b0316816001600160a01b0316836001600160a01b03167f7c9ce34d490425d6909c8542650b59e8c11074274a3ff906359b4edc3d69505187604051620018899190620025a4565b60405180910390a4509998505050505050505050565b303b1590565b6060620018b3838362001ae6565b84511015620018d65760405162461bcd60e51b81526004016200050390620027ca565b606082158015620018e75762001933565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156200192257805183526020928301920162001908565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b818310156200196f57805183526020928301920162001955565b50855184518101855292509050808201602086015b818310156200199e57805183526020928301920162001984565b508651929092011591909101601f01601f191660405250905092915050565b6040805160208082528183019092526060918291906020820181803683370190505090506000805b602081101562001a3f576008810260020a85026001600160f81b031981161562001a35578084848151811062001a1757fe5b60200101906001600160f81b031916908160001a9053506001909201915b50600101620019e5565b6060826001600160401b038111801562001a5857600080fd5b506040519080825280601f01601f19166020018201604052801562001a84576020820181803683370190505b509050600091505b8282101562001add5783828151811062001aa257fe5b602001015160f81c60f81b81838151811062001aba57fe5b60200101906001600160f81b031916908160001a90535060019091019062001a8c565b95945050505050565b60008282018381101562001b0e5760405162461bcd60e51b8152600401620005039062002793565b9392505050565b60405180606001604052806003906020820280368337509192915050565b6103178062002a6d83390190565b5060009055565b60018301918390821562001be25791602002820160005b8382111562001bab57835183826101000a8154816001600160401b0302191690836001600160401b03160217905550926020019260080160208160070104928301926001030262001b5f565b801562001be05782816101000a8154906001600160401b03021916905560080160208160070104928301926001030262001bab565b505b5062001bf092915062001c02565b5090565b6108d28062002d8483390190565b5b8082111562001bf057805467ffffffffffffffff1916815560010162001c03565b60008083601f84011262001c36578182fd5b5081356001600160401b0381111562001c4d578182fd5b602083019150836020808302850101111562001c6857600080fd5b9250929050565b600082601f83011262001c80578081fd5b813562001c9762001c9182620029ca565b620029a3565b8181529150602080830190848101818402860182018710