UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

1,045 lines 74.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MasterDAOFactory__factory = void 0; /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ const ethers_1 = require("ethers"); const _abi = [ { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "daoMemberStorageProxy_", type: "address", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedDAOMemberStorage", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "daoPanelVotingProxy_", type: "address", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedDAOPanelVoting", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "daoParameterStorageProxy_", type: "address", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedDAOParameterStorage", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "daoRegistryProxy_", type: "address", }, { components: [ { internalType: "address", name: "daoCreator", type: "address", }, { internalType: "address", name: "votingToken", type: "address", }, { internalType: "string", name: "daoURI", type: "string", }, { internalType: "bytes32", name: "deploymentSalt", type: "bytes32", }, { components: [ { internalType: "string", name: "name", type: "string", }, { internalType: "bytes", name: "value", type: "bytes", }, { internalType: "enum ParameterType", name: "solidityType", type: "uint8", }, ], internalType: "struct Parameter[]", name: "initialParameters", type: "tuple[]", }, { components: [ { internalType: "string", name: "componentName", type: "string", }, { internalType: "address", name: "componentImplementation", type: "address", }, ], internalType: "struct DAOReplacements[]", name: "daoReplacements", type: "tuple[]", }, ], indexed: false, internalType: "struct DAOConstructorParameters", name: "params_", type: "tuple", }, ], name: "DeployedDAORegistry", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "daoVaultProxy_", type: "address", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedDAOVault", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "votingAddress", type: "address", }, { indexed: true, internalType: "address", name: "votingToken", type: "address", }, { indexed: false, internalType: "string", name: "panelName", type: "string", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedDAOVoting", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "permissionManagerProxy_", type: "address", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedPermissionManager", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "votingFactoryProxy_", type: "address", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedVotingFactory", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "votingRegistryProxy_", type: "address", }, { indexed: false, internalType: "contract DAORegistry", name: "daoRegistry", type: "address", }, ], name: "DeployedVotingRegistry", type: "event", }, { inputs: [], name: "BASE_RELAY_RECIPIENT_STORAGE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "contract DAORegistry", name: "dao_", type: "address", }, { components: [ { internalType: "string", name: "moduleName", type: "string", }, { internalType: "address", name: "moduleAddress", type: "address", }, { internalType: "string", name: "connectorRoleName", type: "string", }, { internalType: "enum ModuleAdditionType", name: "moduleType", type: "uint8", }, { components: [ { internalType: "string", name: "name", type: "string", }, { internalType: "bytes", name: "value", type: "bytes", }, { internalType: "enum ParameterType", name: "solidityType", type: "uint8", }, ], internalType: "struct Parameter[]", name: "constitutionParameters", type: "tuple[]", }, { internalType: "string", name: "votingName", type: "string", }, { components: [ { components: [ { internalType: "string", name: "votingSituationName", type: "string", }, { components: [ { internalType: "uint256", name: "votingPeriod", type: "uint256", }, { internalType: "uint256", name: "vetoPeriod", type: "uint256", }, { internalType: "uint256", name: "proposalExecutionPeriod", type: "uint256", }, { internalType: "uint256", name: "requiredQuorum", type: "uint256", }, { internalType: "uint256", name: "requiredMajority", type: "uint256", }, { internalType: "uint256", name: "requiredVetoQuorum", type: "uint256", }, { internalType: "uint256", name: "votingType", type: "uint256", }, { internalType: "string", name: "votingTarget", type: "string", }, { internalType: "uint256", name: "votingMinAmount", type: "uint256", }, ], internalType: "struct IDAOVoting.DAOVotingValues", name: "votingValues", type: "tuple", }, ], internalType: "struct IDAOVoting.InitialSituation", name: "initialSituation", type: "tuple", }, { internalType: "string", name: "externalLink", type: "string", }, ], internalType: "struct IDAOVoting.ExtendedSituation", name: "situation", type: "tuple", }, { internalType: "address", name: "vetoGroupSource", type: "address", }, { internalType: "bytes", name: "initCallData", type: "bytes", }, { internalType: "bytes32", name: "salt", type: "bytes32", }, ], internalType: "struct DAOModuleContractorParameters", name: "params_", type: "tuple", }, ], name: "addModule", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract DAORegistry", name: "dao_", type: "address", }, { components: [ { internalType: "address", name: "target", type: "address", }, { internalType: "contract DAOMemberStorage", name: "linkedMemberStorage", type: "address", }, ], internalType: "struct IPermissionManager.VetoGroup[]", name: "vetoGroups_", type: "tuple[]", }, ], name: "configureVetoGroups", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract DAORegistry", name: "dao_", type: "address", }, { components: [ { components: [ { internalType: "string", name: "votingSituationName", type: "string", }, { components: [ { internalType: "uint256", name: "votingPeriod", type: "uint256", }, { internalType: "uint256", name: "vetoPeriod", type: "uint256", }, { internalType: "uint256", name: "proposalExecutionPeriod", type: "uint256", }, { internalType: "uint256", name: "requiredQuorum", type: "uint256", }, { internalType: "uint256", name: "requiredMajority", type: "uint256", }, { internalType: "uint256", name: "requiredVetoQuorum", type: "uint256", }, { internalType: "uint256", name: "votingType", type: "uint256", }, { internalType: "string", name: "votingTarget", type: "string", }, { internalType: "uint256", name: "votingMinAmount", type: "uint256", }, ], internalType: "struct IDAOVoting.DAOVotingValues", name: "votingValues", type: "tuple", }, ], internalType: "struct IDAOVoting.InitialSituation", name: "initialSituation", type: "tuple", }, { internalType: "string", name: "externalLink", type: "string", }, ], internalType: "struct IDAOVoting.ExtendedSituation[]", name: "situations_", type: "tuple[]", }, ], name: "configureVotingSituations", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "contractsRegistry", outputs: [ { internalType: "contract MasterContractsRegistry", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { components: [ { internalType: "address", name: "daoCreator", type: "address", }, { internalType: "address", name: "votingToken", type: "address", }, { internalType: "string", name: "daoURI", type: "string", }, { internalType: "bytes32", name: "deploymentSalt", type: "bytes32", }, { components: [ { internalType: "string", name: "name", type: "string", }, { internalType: "bytes", name: "value", type: "bytes", }, { internalType: "enum ParameterType", name: "solidityType", type: "uint8", }, ], internalType: "struct Parameter[]", name: "initialParameters", type: "tuple[]", }, { components: [ { internalType: "string", name: "componentName", type: "string", }, { internalType: "address", name: "componentImplementation", type: "address", }, ], internalType: "struct DAOReplacements[]", name: "daoReplacements", type: "tuple[]", }, ], internalType: "struct DAOConstructorParameters", name: "params_", type: "tuple", }, ], name: "deployDAO", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract DAORegistry", name: "dao_", type: "address", }, { components: [ { internalType: "string", name: "panelName", type: "string", }, { internalType: "address", name: "votingToken", type: "address", }, { components: [ { components: [ { internalType: "string", name: "votingSituationName", type: "string", }, { components: [ { internalType: "uint256", name: "votingPeriod", type: "uint256", }, { internalType: "uint256", name: "vetoPeriod", type: "uint256", }, { internalType: "uint256", name: "proposalExecutionPeriod", type: "uint256", }, { internalType: "uint256", name: "requiredQuorum", type: "uint256", }, { internalType: "uint256", name: "requiredMajority", type: "uint256", }, { internalType: "uint256", name: "requiredVetoQuorum", type: "uint256", }, { internalType: "uint256", name: "votingType", type: "uint256", }, { internalType: "string", name: "votingTarget", type: "string", }, { internalType: "uint256", name: "votingMinAmount", type: "uint256", }, ], internalType: "struct IDAOVoting.DAOVotingValues", name: "votingValues", type: "tuple", }, ], internalType: "struct IDAOVoting.InitialSituation", name: "initialSituation", type: "tuple", }, { internalType: "string", name: "externalLink", type: "string", }, ], internalType: "struct IDAOVoting.ExtendedSituation[]", name: "situations", type: "tuple[]", }, { components: [ { internalType: "string", name: "name", type: "string", }, { internalType: "bytes", name: "value", type: "bytes", }, { internalType: "enum ParameterType", name: "solidityType", type: "uint8", }, ], internalType: "struct Parameter[]", name: "initialParameters", type: "tuple[]", }, { internalType: "address[]", name: "initialMembers", type: "address[]", }, ], internalType: "struct DAOPanelConstructorParameters", name: "daoPanelParams_", type: "tuple", }, ], name: "deployDAOPanel", outputs: [ { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, { internalType: "address", name: "", type: "address", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract DAORegistry", name: "dao_", type: "address", }, { components: [ { internalType: "address", name: "target", type: "address", }, { internalType: "contract DAOMemberStorage", name: "linkedMemberStorage", type: "address", }, ], internalType: "struct IPermissionManager.VetoGroup[]", name: "vetoGroups_", type: "tuple[]", }, ], name: "finishDAOSetup", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "getInjector", outputs: [ { internalType: "address", name: "injector_", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getTrustedForwarder", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "isDAOVetoConfigured", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "isDAOVotingConfigured", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "forwarder_", type: "address", }, ], name: "isTrustedForwarder", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "masterAccess", outputs: [ { internalType: "contract MasterAccessManagement", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "masterDAORegistry", outputs: [ { internalType: "contract MasterDAORegistry", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "salt_", type: "bytes32", }, ], name: "predictDAOAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address[]", name: "daoAddresses_", type: "address[]", }, ], name: "restoreRegistryPools", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "contract DAORegistry", name: "dao_", type: "address", }, ], name: "revokeDAOCreatorRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "registryAddress_", type: "address", }, { internalType: "bytes", name: "", type: "bytes", }, ], name: "setDependencies", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "injector_", type: "address", }, ], name: "setInjector", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "forwarder_", type: "address", }, ], name: "setTrustedForwarder", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "version", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "pure", type: "function", }, { inputs: [], name: "versionRecipient", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "pure", type: "function", }, ]; const _bytecode = "0x6080806040523461001657614894908161001c8239f35b600080fdfe608060405260043610156200001357600080fd5b60003560e01c80630d9d0bf514620001b55780631797ac1414620001af57806319b477ce14620001a957806328e32a6d14620001a357806338894ace146200019d5780633e3b5b191462000197578063486ff0cd14620001915780634cbd1467146200018b57806354fd4d501462000185578063572b6c05146200017f5780635d0d8e7314620001795780636913045114620001735780637dc9e2ef146200016d5780637e6d0f3a14620001675780637ef6af5e14620001615780638cb941cc146200015b57806395788db81462000155578063ce1b815f146200014f578063d247fe0a1462000149578063d98d0c7e1462000143578063da742228146200013d578063e708953414620001375763fb76dca5146200013157600080fd5b62001f39565b62001f0e565b62001eb0565b62001e85565b62001e3f565b62001e06565b62001d32565b62001cf4565b62001cae565b62001c82565b62001b53565b6200171c565b620015ad565b62001562565b62001515565b620014ea565b6200149e565b62001403565b620012b3565b62000ded565b62000d02565b62000b50565b620001d2565b6001600160a01b03811603620001cd57565b600080fd5b34620001cd5760031960403682018113620001cd576004803590620001f782620001bb565b6024356001600160401b038111620001cd57610140818301958236030112620001cd576200022f62000228620020de565b84620030c5565b6200023d6064820162002130565b62000248816200211f565b80620007e757506001600160a01b0383166200026586806200213e565b91620002746024850162002173565b90803b15620001cd57620002a293600080948a5196879586948593635fadb00b60e11b85528c850162002208565b03925af180156200053957620007d0575b505b6001600160a01b03928316620002cc86806200213e565b9690823b15620001cd57865190631adad8cf60e01b82528180620002f760009b8c948a840162002233565b038183875af180156200053957620007b9575b506200031781806200213e565b908751633581777360e01b9182825281806200033a60209687948c840162002233565b0381885afa90811562000539578a9162000797575b5061010486018a8a6200036383886200213e565b905062000748575b516309a06df560e41b81529150849050818981895afa90811562000539578b918a91839162000726575b501660448801620003a781886200213e565b9050620006a7575b50620003bb8362003256565b6200063a575b60e488018a620003d18262002173565b16620005b4575b505050506200040482620003eb62002367565b8a518093819263065ab60960e41b83528b830162001488565b0381885afa8015620005395788918b9162000592575b5016896200042c608488018662002395565b9092803b156200058e576200045893838b8e519687958694859363cabc429d60e01b85528401620024d7565b03925af18015620005395762000577575b5060a48501906200047b82856200213e565b905062000486578980f35b620004ad94620004988493866200213e565b928b519788948593849384528c840162002233565b03915afa95861562000539578896620004d79460c493899262000543575b505016930190620024ea565b91813b156200053f5783620004fe95518096819582946238399160e11b8452830162002515565b03925af1801562000539576200051b575b80808080808080808980f35b806200052b620005329262000960565b80620013f7565b386200050f565b620021fc565b8380fd5b620005679250803d106200056f575b6200055e8183620009ce565b81019062002246565b3880620004cb565b503d62000552565b806200052b620005879262000960565b3862000469565b8280fd5b620005ad9150843d86116200056f576200055e8183620009ce565b386200041a565b620005c3620005cf9162002173565b6001600160a01b031690565b90803b156200058e578b51630423b79f60e01b81526001600160a01b039485168b8201908152929094166020830152839182908490829060400103925af18015620005395762000623575b898180620003d8565b806200052b620006339262000960565b386200061a565b6200064686806200213e565b9290823b15620006a3578c5163760c1fe360e11b815293849182916200066f91838f0162002233565b038183855af191821562000539578c926200068c575b50620003c1565b806200052b6200069c9262000960565b3862000685565b5080fd5b620006cc919250620006be620006c691886200213e565b3691620016c2565b62003233565b908b813b1562000723578b5163ee2f6ce560e01b81529283908190620006f69087838f01620022f0565b038183855af191821562000539578c9215620003af57806200052b6200071c9262000960565b38620003af565b80fd5b620007419150863d88116200056f576200055e8183620009ce565b3862000395565b6200076c82916200075e6200078d958a6200213e565b92909151809381936200225e565b039082865af16200077c6200226c565b62000786620022a1565b91620031b2565b50388a8a6200036b565b620007b29150833d85116200056f576200055e8183620009ce565b386200034f565b806200052b620007c99262000960565b386200030a565b806200052b620007e09262000960565b38620002b3565b620007f2816200211f565b600181036200087e57506001600160a01b0383166200081286806200213e565b91620008216024850162002173565b90803b15620001cd576200084f93600080948a5196879586948593631c1c109f60e31b85528c850162002208565b03925af18015620005395762000867575b50620002b5565b806200052b620008779262000960565b3862000860565b806200088c6002926200211f565b03620008e5576001600160a01b038316620008a886806200213e565b91620008b76024850162002173565b90803b15620001cd576200084f93600080948a5196879586948593631476b60b60e21b85528c850162002208565b6001600160a01b038316620008fb86806200213e565b91906200090b6024850162002173565b91620009166200217f565b813b15620001cd576000866200084f6101249383978b8e519a8b998a98899763592a240f60e11b89520135928701620021ba565b634e487b7160e01b600052604160045260246000fd5b6001600160401b0381116200097457604052565b6200094a565b604081019081106001600160401b038211176200097457604052565b606081019081106001600160401b038211176200097457604052565b602081019081106001600160401b038211176200097457604052565b90601f801991011681019081106001600160401b038211176200097457604052565b6040519061012082018281106001600160401b038211176200097457604052565b6040519060a082018281106001600160401b038211176200097457604052565b6040519062000a4082620009b2565b565b9062000a406040519283620009ce565b6001600160401b038111620009745760051b60200190565b359062000a4082620001bb565b906040916040600319820112620001cd5760043562000a9681620001bb565b926024356001600160401b038111620001cd5782602382011215620001cd5780600401359262000ac68462000a52565b9362000ad66040519586620009ce565b8085526020916024602087019260061b85010193818511620001cd57602401915b84831062000b085750505050505090565b8583830312620001cd57838691825162000b22816200097a565b853562000b2f81620001bb565b81528286013562000b4081620001bb565b8382015281520192019162000af7565b34620001cd5762000b613662000a77565b9062000b7762000b70620020de565b82620030c5565b6001600160a01b03908116600081815260036020526040902090919062000bb49062000bae9062000baa905b5460ff1690565b1590565b620026fd565b6040516309a06df560e41b8152602081600481865afa908115620005395760009162000c6a575b5016803b15620001cd57604051634b5afc9b60e11b815292600091849182908490829062000c0d906004830162002770565b03925af1908115620005395762000c519262000c449262000c53575b506001600160a01b0316600090815260036020526040902090565b805460ff19166001179055565b005b806200052b62000c639262000960565b3862000c29565b62000c87915060203d6020116200056f576200055e8183620009ce565b3862000bdb565b9080601f83011215620001cd57602090823562000cab8162000a52565b9362000cbb6040519586620009ce565b81855260208086019260051b820101928311620001cd57602001905b82821062000ce6575050505090565b838091833562000cf681620001bb565b81520191019062000cd7565b34620001cd576020366003190112620001cd57600480356001600160401b038111620001cd5762000d3890369060040162000c8e565b9062000d4d62000d47620027c9565b62003342565b60005b825181101562000c51576002546001600160a01b03169062000d8462000d77828662002803565b516001600160a01b031690565b91803b15620001cd57604051631a8a4cab60e31b81526001600160a01b03909316848401908152600091849182908490829060200103925af1918215620005395760019262000dd6575b500162000d50565b806200052b62000de69262000960565b3862000dce565b34620001cd5760206003198181360112620001cd5760049081356001600160401b038111620001cd5760c0818401928236030112620001cd5762000e3560648201356200344c565b60025490939062000e4f906001600160a01b0316620005c3565b62000e5e60a484018562002395565b929094823b15620001cd576040958651809463be13809f60e01b8252818a8162000e9160009a8b9788948b8501620028b7565b03925af1928315620005395762000f02936200129c575b5062000ebe8762000eb8620028db565b62003577565b600254909590899062000eda906001600160a01b0316620005c3565b62000ee462002905565b8951634c7a051160e11b815296879291839182918e8a840162002939565b03915afa9384156200053957859462001278575b506001600160a01b038881169690949062000f3560448401856200213e565b62000f4293919362002b00565b908a3b1562001274578993929162000f70918d51968795869563ab22f0eb60e01b875230908d88016200295d565b0381838b5af1801562000539576200125d575b5060025462000f9b906001600160a01b0316620005c3565b803b156200120c578751631a8a4cab60e31b81526001600160a01b038a168582019081529091879183919082908490829060200103925af18015620005395762001246575b5062000fec866200364e565b6200102c60848562001021620010056024860162002173565b6200100f62002367565b62001019620029b2565b918c6200383f565b501692018362002395565b9190813b1562001242579186916200105a93838b5180968195829463cabc429d60e01b84528b8401620024d7565b03925af1801562000539576200122b575b5062001076620028db565b853b15620012275784886200109f9289519384928392631476b60b60e21b8452888401620029de565b0381838a5af18015620005395762001210575b5073__$ea61bb87e9f9642833743a8678300e4b4c$__620010d38262002173565b90803b156200120c57875163f6589b1760e01b81526001600160a01b03808b168683019081529316602084015291869183918290819060400103915af48015620005395786927fb2840e7d03466703b6b988ebe97e98753b3d36ba785926cb99076d7692407a43926200115392620011f5575b5088519182918262002a2f565b0390a286855180926309a06df560e41b825281875afa9081156200053957620011cf977f2644cad9fcdc4b01c2a2ce557ac1e7dca97090b51f5aa2f09a2e2ee0feaf76219492620011d3575b505084516001600160a01b039490941684521691602090a2516001600160a01b0390911681529081906020820190565b0390f35b620011ed9250803d106200056f576200055e8183620009ce565b38806200119f565b806200052b620012059262000960565b3862001146565b8580fd5b806200052b620012209262000960565b38620010b2565b8480fd5b806200052b6200123b9262000960565b386200106b565b8680fd5b806200052b620012569262000960565b3862000fe0565b806200052b6200126d9262000960565b3862000f83565b8980fd5b62001294919450893d8b116200056f576200055e8183620009ce565b923862000f16565b806200052b620012ac9262000960565b3862000ea8565b34620001cd57602080600319360112620001cd5762001328906103ed620012dc82820162000a42565b908082526200445b83830139600254829062001301906001600160a01b0316620005c3565b6200130b620028db565b9060405180809781946335b41c4b60e11b83526004830162001488565b03915afa9182156200053957620013ad620013b9936200139992620011cf96600092620013d3575b50620013a06200135f620020c9565b926200137360405194859285840162002939565b039262001389601f1994858101835282620009ce565b6040519586938401809862002ae7565b9062002ae7565b03908101835282620009ce565b51902060043562003ac8565b6040516001600160a01b0390911681529081906020820190565b81620013ef9293503d84116200056f576200055e8183620009ce565b903862001350565b6000910312620001cd57565b34620001cd576000366003190112620001cd5760008051602062004848833981519152546040516001600160a01b039091168152602090f35b60005b838110620014505750506000910152565b81810151838201526020016200143f565b906020916200147c815180928185528580860191016200143c565b601f01601f1916010190565b9060206200149b92818152019062001461565b90565b34620001cd576000366003190112620001cd57620011cf604051620014c3816200097a565b60058152640322e302e360dc1b602082015260405191829160208352602083019062001461565b34620001cd576000366003190112620001cd576001546040516001600160a01b039091168152602090f35b34620001cd576000366003190112620001cd57620011cf6040516200153a816200097a565b6006815265076312e342e360d41b602082015260405191829160208352602083019062001461565b34620001cd576020366003190112620001cd5760206004356200158581620001bb565b60008051602062004868833981519152546040516001600160a01b0392831691909216148152f35b34620001cd576020366003190112620001cd576020600435620015d081620001bb565b620015de62000b70620020de565b6040516309a06df560e41b81526001600160a01b039290918290600490829086165afa908115620005395760009162001682575b50166200161e62003ae8565b620016326200162c62002bf8565b62003b2d565b823b15620001cd57620016609260009283604051809681958294634f0d84e360e01b845260048401620022f0565b03925af1801562000539576200167257005b806200052b62000c519262000960565b6200169f915060203d6020116200056f576200055e8183620009ce565b3862001612565b6001600160401b0381116200097457601f01601f191660200190565b929192620016d082620016a6565b91620016e06040519384620009ce565b829481845281830111620001cd578281602093846000960137010152565b9080601f83011215620001cd578160206200149b93359101620016c2565b34620001cd576040366003190112620001cd576004356200173d81620001bb565b6024356001600160401b038111620001cd576200175f903690600401620016fe565b506200176a62003b96565b600080546001600160a01b0319166001600160a01b0392831690811782559091906200179690620005c3565b9060405180926309a06df560e41b825281600460209586935afa9081156200053957620017eb918391869162001891575b501660018060a01b03166bffffffffffffffffffffffff60a01b6001541617600155565b8254600490839062001806906001600160a01b0316620005c3565b6040516335000d2960e01b815292839182905afa9081156200053957620018549385926200186f575b50501660018060a01b03166bffffffffffffffffffffffff60a01b6002541617600255565b6200186c336000805160206200484883398151915255565b80f35b620018899250803d106200056f576200055e8183620009ce565b38806200182f565b620018ac9150853d87116200056f576200055e8183620009ce565b38620017c7565b9080601f83011215620001cd57813591602091620018d18462000a52565b936040620018e281519687620009ce565b818652848087019260051b85010193838511620001cd57858101925b85841062001910575050505050505090565b6001600160401b038435818111620001cd57830191601f198581858a030112620001cd5785519062001942826200097a565b8a850135848111620001cd578501908781838c030112620001cd578751916200196b836200097a565b8c810135868111620001cd578b8e6200198792840101620016fe565b83528881013590868211620001cd57016101208092828d030112620001cd57620019b0620009f0565b918d82013583528d8a830135908401526060808301358b850152608090818401359085015260a090818401359085015260c090818401359085015260e0830135908401526101009182810135888111620001cd578f8e9062001a1592840101620016fe565b60e08501520135908201528b820152815285840135928311620001cd5762001a45888b80969581960101620016fe565b83820152815201930192620018fe565b35906006821015620001cd57565b81601f82011215620001cd5780359160209162001a808462000a52565b9360409262001a936040519687620009ce565b818652848087019260051b84010193818511620001cd57858401925b85841062001ac1575050505050505090565b6001600160401b03908435828111620001cd5786019060609283601f198488030112620001cd5784519062001af68262000996565b8a840135818111620001cd57878c62001b1292870101620016fe565b825285840135908111620001cd578a948462001b38898862001b439581990101620016fe565b868501520162001a55565b8582015281520193019262001aaf565b34620001cd57600319604036820112620001cd57600480359162001b7783620001bb565b602435926001600160401b0391828511620001cd5760a0908536030112620001cd5762001ba362000a11565b9184840135818111620001cd5762001bc190853691880101620016fe565b835262001bd16024860162000a6a565b60208401526044850135818111620001cd5762001bf490853691880101620018b3565b60408401526064850135818111620001cd5762001c179085369188010162001a63565b606084015260848501359