@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
570 lines (569 loc) • 48.1 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "DAOParameterStorage",
"sourceName": "contracts/DAO/DAOParameterStorage.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "parameterName",
"type": "string"
}
],
"name": "DAOParameterStorage__ParameterNotFound",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"indexed": false,
"internalType": "struct Parameter",
"name": "parameter",
"type": "tuple"
}
],
"name": "ParameterAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"indexed": false,
"internalType": "struct Parameter",
"name": "parameter",
"type": "tuple"
}
],
"name": "ParameterChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "parameterName",
"type": "string"
}
],
"name": "ParameterRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [],
"name": "DAO_PARAMETER_STORAGE_RESOURCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "resource_",
"type": "string"
}
],
"name": "__DAOParameterStorage_init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "member_",
"type": "address"
},
{
"internalType": "string",
"name": "permission_",
"type": "string"
}
],
"name": "checkPermission",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
}
],
"name": "getDAOParameter",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDAOParameters",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getInjector",
"outputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index_",
"type": "uint256"
}
],
"name": "getParameterByIndex",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParametersCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getResource",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
}
],
"name": "hasDAOParameter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "permissionManager",
"outputs": [
{
"internalType": "contract PermissionManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
}
],
"name": "removeDAOParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "parameterNames_",
"type": "string[]"
}
],
"name": "removeDAOParameters",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter",
"name": "parameter_",
"type": "tuple"
}
],
"name": "setDAOParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "parameters_",
"type": "tuple[]"
}
],
"name": "setDAOParameters",
"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": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x60a0806040523461003157306080526122b2908161003782396080518181816107fa015281816108bf0152610ca50152f35b600080fdfe608060409080825260048036101561001657600080fd5b600091823560e01c90816301ffc9a7146112e157508063145290921461129f5780632b1c312e146110475780633659cfe614610c7e5780633e3b5b1914610c485780634f1ef286146108a757806352d1902d146107e55780635c60da1b146107af57806369130451146106f65780637760fe67146106b157806382bc7d961461066a5780638cb941cc146106355780639646b1ac146105b05780639c5662e214610560578063ae71109c14610487578063bb65dc8314610445578063c254fbc914610426578063cabc429d14610363578063cc7a204914610336578063d8ad4e1c146102e5578063d9092585146101fe5763fcae0a441461011657600080fd5b346101fa5760209060206003193601126101f65780356001600160401b03918282116101f257366023830112156101f257810135906024610162610159846116f5565b97519788611399565b8287526024602088019360051b830101933685116101ee5760248301935b8585106101c457888861019961019461170c565b611981565b805b82518110156101c057806101ba6101b4600193866118a5565b51611a13565b0161019b565b5080f35b84358281116101ea5787916101df83928636918901016113d5565b815201940193610180565b8880fd5b8680fd5b8480fd5b8280fd5b5080fd5b5050346102e257806003193601126102e257600380549161021e836116f5565b61022a85519182611399565b8381526003825260209384820193837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b865b8483106102be5750505050508451938085019181865251809252858501958260051b8601019392955b8287106102925785850386f35b9091929382806102ae600193603f198a8203018652885161152d565b9601920196019592919092610285565b83896001926102d0859c999a9c611bf9565b8152019201920191909795949761025c565b80fd5b508290346101f657816003193601126101f657610300611421565b92602435906001600160401b0382116102e257509261032761032d926020953691016113d5565b906118cf565b90519015158152f35b8284346101fa57816003193601126101fa57600254905160089190911c6001600160a01b03168152602090f35b50346101fa5760209060206003193601126101f65780356001600160401b03918282116101f257366023830112156101f2578101359060246103a7610159846116f5565b8287526024602088019360051b830101933685116101ee5760248301935b8585106104005788886103d9610194611862565b805b82518110156101c057806103fa6103f4600193866118a5565b51611ade565b016103db565b84358281116101ea57879161041b8392863691890101611479565b8152019401936103c5565b8284346101fa57816003193601126101fa576020906003549051908152f35b8284346101fa57816003193601126101fa578051610483916104718261046a816115bc565b0383611399565b51918291602083526020830190611508565b0390f35b5050346102e257806003193601126102e2578151918282600193600154946104ae86611582565b91828552602096876001821691826000146105395750506001146104ef575b50505061048392916104e0910385611399565b51928284938452830190611508565b9190869350600183526000805160206122868339815191525b82841061052157505050820101816104e06104836104cd565b8054848a018601528895508794909301928101610508565b60ff19168782015293151560051b860190930193508492506104e0915061048390506104cd565b509190346102e25760203660031901126102e2575061059d61059761048393610587611884565b50610590611884565b5035611bbf565b50611bf9565b905191829160208352602083019061152d565b509190346102e25760203660031901126102e25782356001600160401b0381116101fa576105e461060491369086016113d5565b6105ec611884565b506105f681611b84565b6105fe611884565b50611b5e565b54600019810193908411610622576104838361059d61059787611bbf565b634e487b7160e01b825260119052602490fd5b82346102e25760203660031901126102e25761064f611421565b610657611a64565b6000805160206122468339815191525580f35b509190346102e25760203660031901126102e2578235906001600160401b0382116102e257506106a26020936106a7923691016113d5565b611b5e565b5415159051908152f35b50346101fa5760203660031901126101fa5780356001600160401b0381116101f6576106f3916106e391369101611479565b6106ee610194611862565b611ade565b80f35b508290346101f657602061070936611437565b50610712611a64565b83516309a06df560e41b815292839182906001600160a01b03165afa9182156107a657508291610777575b5060028054610100600160a81b03191660089290921b610100600160a81b0316919091179055336000805160206122468339815191525580f35b610799915060203d60201161079f575b6107918183611399565b810190611843565b8261073d565b503d610787565b513d84823e3d90fd5b8284346101fa57816003193601126101fa576000805160206122668339815191525490516001600160a01b039091168152602090f35b5090346102e257806003193601126102e257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361083f57602082516000805160206122668339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b50826108b236611437565b90916001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083166108ec30821415611781565b6109096000805160206122668339815191529185835416146117e2565b8360025460081c169383518095631082599b60e31b8252818960209889935afa908115610c0557829187918b91610c0f575b5089875180948193633441847f60e21b8352165afa908115610c05579082918a91610be8575b50163303610b94577f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156109a25750505050506106f3915061200f565b85939495169084516352d1902d60e01b815286818981865afa899181610b61575b50610a2257855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9691929594939603610b0c5750610a388561200f565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a2825115801590610b04575b610a73575b5050505080f35b610af0938580835195610a858761134d565b602787527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c86880152660819985a5b195960ca1b858801528581519101845af4913d15610afa573d610ae2610ad9826113ba565b92519283611399565b81528681943d92013e6121ac565b5081808080610a6c565b50606092506121ac565b506001610a67565b825162461bcd60e51b8152908101849052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d8311610b8d575b610b798183611399565b81010312610b895751908a6109c3565b8980fd5b503d610b6f565b835162461bcd60e51b8152808801869052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b610bff9150873d891161079f576107918183611399565b8a610961565b85513d8b823e3d90fd5b92505081813d8311610c41575b610c268183611399565b810103126101ea575181811681036101ea578582918b61093b565b503d610c1c565b8284346101fa57816003193601126101fa576000805160206122468339815191525490516001600160a01b039091168152602090f35b5082346101f65760208060031936011261104357610c9a611421565b916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116610cd230821415611781565b610cef6000805160206122668339815191529183835416146117e2565b85848360025460081c16855192838092631082599b60e31b82525afa908115610ffc57839186918a91611006575b5088865180948193633441847f60e21b8352165afa908115610ffc579083918991610fdf575b50163303610f8b57825190848201928284106001600160401b03851117610f78578385528883527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610da4575050505050506106f3915061200f565b869293949596169085516352d1902d60e01b815287818a81865afa8a9181610f45575b50610e2657865162461bcd60e51b8152808a01899052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b979192939695949703610ef05750610e3d8261200f565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8780a285845115801590610ee9575b610e7b575b50505050505080f35b80610edd96845196610e8c8861134d565b602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b868901525190845af4913d15610afa573d610ae2610ad9826113ba565b50818080808085610e72565b5080610e6d565b835162461bcd60e51b8152908101859052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508881813d8311610f71575b610f5d8183611399565b81010312610f6d5751908b610dc7565b8a80fd5b503d610f53565b634e487b7160e01b895260418852602489fd5b825162461bcd60e51b8152808701859052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b610ff69150863d881161079f576107918183611399565b89610d43565b84513d8a823e3d90fd5b92505081813d831161103c575b61101d8183611399565b8101031261103857518281168103611038578483918a610d1d565b8780fd5b503d611013565b8380fd5b508290346101f65760209081600319360112611043576001600160401b0390803582811161129b5761107c90369083016113d5565b9185549260ff8460081c16159283809461128e575b8015611277575b1561121d57600194848660ff198316178a5561120c575b5081519283116111f957506110c48454611582565b601f81116111b4575b508490601f831160011461114a576110fd929188918361113f575b50508160011b916000199060031b1c19161790565b82555b611108578380f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989261ff0019855416855551908152a18180808380f35b0151905088806110e8565b84885284929160008051602061228683398151915291601f1984168a5b8982821061119e5750508411611185575b505050811b018255611100565b015160001960f88460031b161c19169055878080611178565b8385015186558997909501949384019301611167565b6111e990858952600080516020612286833981519152601f850160051c8101918886106111ef575b601f0160051c019061172e565b876110cd565b90915081906111dc565b634e487b7160e01b885260419052602487fd5b61ffff1916610101178855886110af565b865162461bcd60e51b8152908101869052602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156110985750600160ff861614611098565b50600160ff861610611091565b8580fd5b50346101fa5760203660031901126101fa5780356001600160401b0381116101f6576106f3916112d1913691016113d5565b6112dc61019461170c565b611a13565b919050346101f65760203660031901126101f6573563ffffffff60e01b81168091036101f657602092506318da2ad760e31b811490811561133c575b811561132b575b5015158152f35b6301ffc9a760e01b14905083611324565b6363c8929f60e01b8114915061131d565b606081019081106001600160401b0382111761136857604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761136857604052565b90601f801991011681019081106001600160401b0382111761136857604052565b6001600160401b03811161136857601f01601f191660200190565b81601f8201121561141c578035906113ec826113ba565b926113fa6040519485611399565b8284526020838301011161141c57816000926020809301838601378301015290565b600080fd5b600435906001600160a01b038216820361141c57565b90604060031983011261141c576004356001600160a01b038116810361141c5791602435906001600160401b03821161141c57611476916004016113d5565b90565b919060608382031261141c57604051906114928261134d565b819380356001600160401b039081811161141c57836114b29184016113d5565b8452602082013590811161141c576040926114ce9183016113d5565b6020840152013590600682101561141c5760400152565b60005b8381106114f85750506000910152565b81810151838201526020016114e8565b90602091611521815180928185528580860191016114e5565b601f01601f1916010190565b9060406115586115468451606085526060850190611508565b60208501518482036020860152611508565b92015190600682101561156c576040015290565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156115b2575b602083101461159c57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611591565b906000916001906001546115cf81611582565b808352926020916001811690811561163a57506001146115f0575b50505050565b929394506001600052600080516020612286833981519152926000935b8585106116275750505060209250010190388080806115ea565b805485850184015293820193810161160d565b92505050602093945060ff929192191683830152151560051b010190388080806115ea565b80546000939261166e82611582565b918282526020936001916001811690816000146116d65750600114611695575b5050505050565b90939495506000929192528360002092846000945b8386106116c25750505050010190388080808061168e565b8054858701830152940193859082016116aa565b60ff19168685015250505090151560051b01019150388080808061168e565b6001600160401b0381116113685760051b60200190565b604051906117198261137e565b600682526544454c45544560d01b6020830152565b818110611739575050565b6000815560010161172e565b9190601f811161175457505050565b61177f926000526020600020906020601f840160051c830193106111ef57601f0160051c019061172e565b565b1561178857565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b156117e957565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b9081602091031261141c57516001600160a01b038116810361141c5790565b6040519061186f8261137e565b600682526555504441544560d01b6020830152565b604051906118918261134d565b600060408360608152606060208201520152565b80518210156118b95760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600254604051633ca8e36d60e11b81526001600160a01b0392831660048201526060602482015292602092849260081c16908290819061192790611915606484016115bc565b83810360031901604485015290611508565b03915afa9081156119755760009161193d575090565b6020813d60201161196d575b8161195660209383611399565b810103126101fa57519081151582036102e2575090565b3d9150611949565b6040513d6000823e3d90fd5b61198b90336118cf565b1561199257565b60405162461bcd60e51b815260206004820152604d60248201527f5b5147444b2d3030353030305d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f20706572666f726d2074686520616374696f6e2c206160648201526c31b1b2b9b9903232b734b2b21760991b608482015260a490fd5b611a5f7f49ba54ccfa6d8676195170aa09aabbb0a33d4259f9f708f42517826c2ea7139b91611a4181611b84565b611a4a81611e24565b50604051918291602083526020830190611508565b0390a1565b600080516020612246833981519152546001600160a01b03168015908115611ad4575b5015611a8f57565b60405162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a206e6f7420616e20696e6a6563746f720000000000006044820152606490fd5b9050331438611a87565b611ae88151611b5e565b54611b3057611a5f81611b1b7f9acff1bc36c03db9beac2f4d372ca4e51d0c816a61ab2c9062f360c5328164089361212a565b5060405191829160208352602083019061152d565b611a5f81611b1b7ff7eb206277eeecfc5dc3d67bdafb1828efb1e4419b602e08ae49f9ffb0721b4b9361209f565b6020611b779181604051938285809451938492016114e5565b8101600481520301902090565b611b8d81611b5e565b5415611b965750565b6040516375b29ba760e01b815260206004820152908190611bbb906024830190611508565b0390fd5b6003548110156118b95760039081600052027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0190600090565b90604051611c068161134d565b60ff60028294604051611c2481611c1d818561165f565b0382611399565b8452604051611c3a81611c1d816001860161165f565b602085015201541690600682101561156c5760400152565b90611e0e57815180516001600160401b039182821161136857611c7f82611c798654611582565b86611745565b602090601f8311600114611da757611caf929160009183611d2c5750508160011b916000199060031b1c19161790565b82555b60019060018301916020850151805192831161136857611cd683611c798654611582565b602091601f8411600114611d375750826040959360029593611d0e93600092611d2c5750508160011b916000199060031b1c19161790565b90555b01910151600681101561156c5760ff80198354169116179055565b0151905038806110e8565b9190601f1984168560005282600020936000905b828210611d8e575050926001928592604098966002989610611d75575b505050811b019055611d11565b015160001960f88460031b161c19169055388080611d68565b9093946020828192888701518155019601940190611d4b565b90601f1983169185600052816000209260005b818110611df65750908460019594939210611ddd575b505050811b018255611cb2565b015160001960f88460031b161c19169055388080611dd0565b92936020600181928786015181550195019301611dba565b634e487b7160e01b600052600060045260246000fd5b60405181519060209283810192611e3c8184866114e5565b600490830181815283900385019092205480156120055760001990808201818111611ff05760035490838201918211611fdb578088918303611f90575b505050506003548015611f7b5701611e9081611bbf565b611f675791600095939186600285611eac611ee0999754611582565b80611f2b575b5060018101611ec18154611582565b9081611eef575b505001556003556040519485938492519283916114e5565b82019081520301902055600190565b81601f869311600114611f065750555b3880611ec8565b908083918252611f24601f8d8420940160051c84016001850161172e565b5555611eff565b601f8111600114611f4157508281555b38611eb2565b8390828252611f5e601f8b8420920160051c82016001830161172e565b81835555611f3b565b600084634e487b7160e01b82525260246000fd5b603184634e487b7160e01b6000525260246000fd5b611fb4611fae91611fa6610597611fc896611bbf565b928391611bbf565b90611c52565b5181604051938285809451938492016114e5565b8101878152030190205538808681611e79565b601186634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b5050505050600090565b803b156120445760008051602061226683398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6120b96020825181604051938285809451938492016114e5565b6004908201908152030190205415612124576120e56020825181604051938285809451938492016114e5565b810160048152030190205490600019820191821161210e57611fae61210992611bbf565b600190565b634e487b7160e01b600052601160045260246000fd5b50600090565b6121446020825181604051938285809451938492016114e5565b81016004815203019020541560001461212457600354680100000000000000008110156113685781611fae82600161217f9401600355611bbf565b61219c6020600354925181604051938285809451938492016114e5565b8101600481520301902055600190565b9192901561220e57508151156121c0575090565b3b156121c95790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156122215750805190602001fd5b60405162461bcd60e51b815260206004820152908190611bbb90602483019061150856fe3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a164736f6c6343000818000a",
"deployedBytecode": "0x608060409080825260048036101561001657600080fd5b600091823560e01c90816301ffc9a7146112e157508063145290921461129f5780632b1c312e146110475780633659cfe614610c7e5780633e3b5b1914610c485780634f1ef286146108a757806352d1902d146107e55780635c60da1b146107af57806369130451146106f65780637760fe67146106b157806382bc7d961461066a5780638cb941cc146106355780639646b1ac146105b05780639c5662e214610560578063ae71109c14610487578063bb65dc8314610445578063c254fbc914610426578063cabc429d14610363578063cc7a204914610336578063d8ad4e1c146102e5578063d9092585146101fe5763fcae0a441461011657600080fd5b346101fa5760209060206003193601126101f65780356001600160401b03918282116101f257366023830112156101f257810135906024610162610159846116f5565b97519788611399565b8287526024602088019360051b830101933685116101ee5760248301935b8585106101c457888861019961019461170c565b611981565b805b82518110156101c057806101ba6101b4600193866118a5565b51611a13565b0161019b565b5080f35b84358281116101ea5787916101df83928636918901016113d5565b815201940193610180565b8880fd5b8680fd5b8480fd5b8280fd5b5080fd5b5050346102e257806003193601126102e257600380549161021e836116f5565b61022a85519182611399565b8381526003825260209384820193837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b865b8483106102be5750505050508451938085019181865251809252858501958260051b8601019392955b8287106102925785850386f35b9091929382806102ae600193603f198a8203018652885161152d565b9601920196019592919092610285565b83896001926102d0859c999a9c611bf9565b8152019201920191909795949761025c565b80fd5b508290346101f657816003193601126101f657610300611421565b92602435906001600160401b0382116102e257509261032761032d926020953691016113d5565b906118cf565b90519015158152f35b8284346101fa57816003193601126101fa57600254905160089190911c6001600160a01b03168152602090f35b50346101fa5760209060206003193601126101f65780356001600160401b03918282116101f257366023830112156101f2578101359060246103a7610159846116f5565b8287526024602088019360051b830101933685116101ee5760248301935b8585106104005788886103d9610194611862565b805b82518110156101c057806103fa6103f4600193866118a5565b51611ade565b016103db565b84358281116101ea57879161041b8392863691890101611479565b8152019401936103c5565b8284346101fa57816003193601126101fa576020906003549051908152f35b8284346101fa57816003193601126101fa578051610483916104718261046a816115bc565b0383611399565b51918291602083526020830190611508565b0390f35b5050346102e257806003193601126102e2578151918282600193600154946104ae86611582565b91828552602096876001821691826000146105395750506001146104ef575b50505061048392916104e0910385611399565b51928284938452830190611508565b9190869350600183526000805160206122868339815191525b82841061052157505050820101816104e06104836104cd565b8054848a018601528895508794909301928101610508565b60ff19168782015293151560051b860190930193508492506104e0915061048390506104cd565b509190346102e25760203660031901126102e2575061059d61059761048393610587611884565b50610590611884565b5035611bbf565b50611bf9565b905191829160208352602083019061152d565b509190346102e25760203660031901126102e25782356001600160401b0381116101fa576105e461060491369086016113d5565b6105ec611884565b506105f681611b84565b6105fe611884565b50611b5e565b54600019810193908411610622576104838361059d61059787611bbf565b634e487b7160e01b825260119052602490fd5b82346102e25760203660031901126102e25761064f611421565b610657611a64565b6000805160206122468339815191525580f35b509190346102e25760203660031901126102e2578235906001600160401b0382116102e257506106a26020936106a7923691016113d5565b611b5e565b5415159051908152f35b50346101fa5760203660031901126101fa5780356001600160401b0381116101f6576106f3916106e391369101611479565b6106ee610194611862565b611ade565b80f35b508290346101f657602061070936611437565b50610712611a64565b83516309a06df560e41b815292839182906001600160a01b03165afa9182156107a657508291610777575b5060028054610100600160a81b03191660089290921b610100600160a81b0316919091179055336000805160206122468339815191525580f35b610799915060203d60201161079f575b6107918183611399565b810190611843565b8261073d565b503d610787565b513d84823e3d90fd5b8284346101fa57816003193601126101fa576000805160206122668339815191525490516001600160a01b039091168152602090f35b5090346102e257806003193601126102e257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361083f57602082516000805160206122668339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b50826108b236611437565b90916001600160a01b03917f000000000000000000000000000000000000000000000000000000000000000083166108ec30821415611781565b6109096000805160206122668339815191529185835416146117e2565b8360025460081c169383518095631082599b60e31b8252818960209889935afa908115610c0557829187918b91610c0f575b5089875180948193633441847f60e21b8352165afa908115610c05579082918a91610be8575b50163303610b94577f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156109a25750505050506106f3915061200f565b85939495169084516352d1902d60e01b815286818981865afa899181610b61575b50610a2257855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9691929594939603610b0c5750610a388561200f565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a2825115801590610b04575b610a73575b5050505080f35b610af0938580835195610a858761134d565b602787527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c86880152660819985a5b195960ca1b858801528581519101845af4913d15610afa573d610ae2610ad9826113ba565b92519283611399565b81528681943d92013e6121ac565b5081808080610a6c565b50606092506121ac565b506001610a67565b825162461bcd60e51b8152908101849052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d8311610b8d575b610b798183611399565b81010312610b895751908a6109c3565b8980fd5b503d610b6f565b835162461bcd60e51b8152808801869052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b610bff9150873d891161079f576107918183611399565b8a610961565b85513d8b823e3d90fd5b92505081813d8311610c41575b610c268183611399565b810103126101ea575181811681036101ea578582918b61093b565b503d610c1c565b8284346101fa57816003193601126101fa576000805160206122468339815191525490516001600160a01b039091168152602090f35b5082346101f65760208060031936011261104357610c9a611421565b916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116610cd230821415611781565b610cef6000805160206122668339815191529183835416146117e2565b85848360025460081c16855192838092631082599b60e31b82525afa908115610ffc57839186918a91611006575b5088865180948193633441847f60e21b8352165afa908115610ffc579083918991610fdf575b50163303610f8b57825190848201928284106001600160401b03851117610f78578385528883527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610da4575050505050506106f3915061200f565b869293949596169085516352d1902d60e01b815287818a81865afa8a9181610f45575b50610e2657865162461bcd60e51b8152808a01899052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b979192939695949703610ef05750610e3d8261200f565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8780a285845115801590610ee9575b610e7b575b50505050505080f35b80610edd96845196610e8c8861134d565b602788527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c87890152660819985a5b195960ca1b868901525190845af4913d15610afa573d610ae2610ad9826113ba565b50818080808085610e72565b5080610e6d565b835162461bcd60e51b8152908101859052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508881813d8311610f71575b610f5d8183611399565b81010312610f6d5751908b610dc7565b8a80fd5b503d610f53565b634e487b7160e01b895260418852602489fd5b825162461bcd60e51b8152808701859052602860248201527f5b5147444b2d3030363030355d2d4e6f7420617574686f72697a656420746f206044820152673ab833b930b2329760c11b6064820152608490fd5b610ff69150863d881161079f576107918183611399565b89610d43565b84513d8a823e3d90fd5b92505081813d831161103c575b61101d8183611399565b8101031261103857518281168103611038578483918a610d1d565b8780fd5b503d611013565b8380fd5b508290346101f65760209081600319360112611043576001600160401b0390803582811161129b5761107c90369083016113d5565b9185549260ff8460081c16159283809461128e575b8015611277575b1561121d57600194848660ff198316178a5561120c575b5081519283116111f957506110c48454611582565b601f81116111b4575b508490601f831160011461114a576110fd929188918361113f575b50508160011b916000199060031b1c19161790565b82555b611108578380f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989261ff0019855416855551908152a18180808380f35b0151905088806110e8565b84885284929160008051602061228683398151915291601f1984168a5b8982821061119e5750508411611185575b505050811b018255611100565b015160001960f88460031b161c19169055878080611178565b8385015186558997909501949384019301611167565b6111e990858952600080516020612286833981519152601f850160051c8101918886106111ef575b601f0160051c019061172e565b876110cd565b90915081906111dc565b634e487b7160e01b885260419052602487fd5b61ffff1916610101178855886110af565b865162461bcd60e51b8152908101869052602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156110985750600160ff861614611098565b50600160ff861610611091565b8580fd5b50346101fa5760203660031901126101fa5780356001600160401b0381116101f6576106f3916112d1913691016113d5565b6112dc61019461170c565b611a13565b919050346101f65760203660031901126101f6573563ffffffff60e01b81168091036101f657602092506318da2ad760e31b811490811561133c575b811561132b575b5015158152f35b6301ffc9a760e01b14905083611324565b6363c8929f60e01b8114915061131d565b606081019081106001600160401b0382111761136857604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761136857604052565b90601f801991011681019081106001600160401b0382111761136857604052565b6001600160401b03811161136857601f01601f191660200190565b81601f8201121561141c578035906113ec826113ba565b926113fa6040519485611399565b8284526020838301011161141c57816000926020809301838601378301015290565b600080fd5b600435906001600160a01b038216820361141c57565b90604060031983011261141c576004356001600160a01b038116810361141c5791602435906001600160401b03821161141c57611476916004016113d5565b90565b919060608382031261141c57604051906114928261134d565b819380356001600160401b039081811161141c57836114b29184016113d5565b8452602082013590811161141c576040926114ce9183016113d5565b6020840152013590600682101561141c5760400152565b60005b8381106114f85750506000910152565b81810151838201526020016114e8565b90602091611521815180928185528580860191016114e5565b601f01601f1916010190565b9060406115586115468451606085526060850190611508565b60208501518482036020860152611508565b92015190600682101561156c576040015290565b634e487b7160e01b600052602160045260246000fd5b90600182811c921680156115b2575b602083101461159c57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611591565b906000916001906001546115cf81611582565b808352926020916001811690811561163a57506001146115f0575b50505050565b929394506001600052600080516020612286833981519152926000935b8585106116275750505060209250010190388080806115ea565b805485850184015293820193810161160d565b92505050602093945060ff929192191683830152151560051b010190388080806115ea565b80546000939261166e82611582565b918282526020936001916001811690816000146116d65750600114611695575b5050505050565b90939495506000929192528360002092846000945b8386106116c25750505050010190388080808061168e565b8054858701830152940193859082016116aa565b60ff19168685015250505090151560051b01019150388080808061168e565b6001600160401b0381116113685760051b60200190565b604051906117198261137e565b600682526544454c45544560d01b6020830152565b818110611739575050565b6000815560010161172e565b9190601f811161175457505050565b61177f926000526020600020906020601f840160051c830193106111ef57601f0160051c019061172e565b565b1561178857565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b156117e957565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b9081602091031261141c57516001600160a01b038116810361141c5790565b6040519061186f8261137e565b600682526555504441544560d01b6020830152565b604051906118918261134d565b600060408360608152606060208201520152565b80518210156118b95760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b600254604051633ca8e36d60e11b81526001600160a01b0392831660048201526060602482015292602092849260081c16908290819061192790611915606484016115bc565b83810360031901604485015290611508565b03915afa9081156119755760009161193d575090565b6020813d60201161196d575b8161195660209383611399565b810103126101fa57519081151582036102e2575090565b3d9150611949565b6040513d6000823e3d90fd5b61198b90336118cf565b1561199257565b60405162461bcd60e51b815260206004820152604d60248201527f5b5147444b2d3030353030305d2d5468652073656e646572206973206e6f742060448201527f616c6c6f77656420746f20706572666f726d2074686520616374696f6e2c206160648201526c31b1b2b9b9903232b734b2b21760991b608482015260a490fd5b611a5f7f49ba54ccfa6d8676195170aa09aabbb0a33d4259f9f708f42517826c2ea7139b91611a4181611b84565b611a4a81611e24565b50604051918291602083526020830190611508565b0390a1565b600080516020612246833981519152546001600160a01b03168015908115611ad4575b5015611a8f57565b60405162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a206e6f7420616e20696e6a6563746f720000000000006044820152606490fd5b9050331438611a87565b611ae88151611b5e565b54611b3057611a5f81611b1b7f9acff1bc36c03db9beac2f4d372ca4e51d0c816a61ab2c9062f360c5328164089361212a565b5060405191829160208352602083019061152d565b611a5f81611b1b7ff7eb206277eeecfc5dc3d67bdafb1828efb1e4419b602e08ae49f9ffb0721b4b9361209f565b6020611b779181604051938285809451938492016114e5565b8101600481520301902090565b611b8d81611b5e565b5415611b965750565b6040516375b29ba760e01b815260206004820152908190611bbb906024830190611508565b0390fd5b6003548110156118b95760039081600052027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0190600090565b90604051611c068161134d565b60ff60028294604051611c2481611c1d818561165f565b0382611399565b8452604051611c3a81611c1d816001860161165f565b602085015201541690600682101561156c5760400152565b90611e0e57815180516001600160401b039182821161136857611c7f82611c798654611582565b86611745565b602090601f8311600114611da757611caf929160009183611d2c5750508160011b916000199060031b1c19161790565b82555b60019060018301916020850151805192831161136857611cd683611c798654611582565b602091601f8411600114611d375750826040959360029593611d0e93600092611d2c5750508160011b916000199060031b1c19161790565b90555b01910151600681101561156c5760ff80198354169116179055565b0151905038806110e8565b9190601f1984168560005282600020936000905b828210611d8e575050926001928592604098966002989610611d75575b505050811b019055611d11565b015160001960f88460031b161c19169055388080611d68565b9093946020828192888701518155019601940190611d4b565b90601f1983169185600052816000209260005b818110611df65750908460019594939210611ddd575b505050811b018255611cb2565b015160001960f88460031b161c19169055388080611dd0565b92936020600181928786015181550195019301611dba565b634e487b7160e01b600052600060045260246000fd5b60405181519060209283810192611e3c8184866114e5565b600490830181815283900385019092205480156120055760001990808201818111611ff05760035490838201918211611fdb578088918303611f90575b505050506003548015611f7b5701611e9081611bbf565b611f675791600095939186600285611eac611ee0999754611582565b80611f2b575b5060018101611ec18154611582565b9081611eef575b505001556003556040519485938492519283916114e5565b82019081520301902055600190565b81601f869311600114611f065750555b3880611ec8565b908083918252611f24601f8d8420940160051c84016001850161172e565b5555611eff565b601f8111600114611f4157508281555b38611eb2565b8390828252611f5e601f8b8420920160051c82016001830161172e565b81835555611f3b565b600084634e487b7160e01b82525260246000fd5b603184634e487b7160e01b6000525260246000fd5b611fb4611fae91611fa6610597611fc896611bbf565b928391611bbf565b90611c52565b5181604051938285809451938492016114e5565b8101878152030190205538808681611e79565b601186634e487b7160e01b6000525260246000fd5b601185634e487b7160e01b6000525260246000fd5b5050505050600090565b803b156120445760008051602061226683398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6120b96020825181604051938285809451938492016114e5565b6004908201908152030190205415612124576120e56020825181604051938285809451938492016114e5565b810160048152030190205490600019820191821161210e57611fae61210992611bbf565b600190565b634e487b7160e01b600052601160045260246000fd5b50600090565b6121446020825181604051938285809451938492016114e5565b81016004815203019020541560001461212457600354680100000000000000008110156113685781611fae82600161217f9401600355611bbf565b61219c6020600354925181604051938285809451938492016114e5565b8101600481520301902055600190565b9192901561220e57508151156121c0575090565b3b156121c95790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156122215750805190602001fd5b60405162461bcd60e51b815260206004820152908190611bbb90602483019061150856fe3d1f25f1ac447e55e7fec744471c4dab1c6a2b6ffb897825f9ea3d2e8c9be583360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a164736f6c6343000818000a",
"linkReferences": {},
"deployedLinkReferences": {}
}