@latticexyz/world-modules 2.0.0-main-6bae338a → 2.0.0-main-747d8d1b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[],"outputs":[{"name":"","type":"bytes16","internalType":"bytes16"}],"stateMutability":"pure"},{"type":"function","name":"install","inputs":[{"name":"args","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRoot","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"PackedCounter"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ERC20Module_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"FieldLayoutLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord","inputs":[]},{"type":"error","name":"FieldLayoutLib_StaticLengthIsZero","inputs":[]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"string","internalType":"string"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"SchemaLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60a0604052604051620000129062000050565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b506001600160a01b03166080523480156200004957600080fd5b506200005e565b61489380620034b283390190565b6080516134386200007a600039600061034a01526134386000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100df57806345ec93541461010d5780637c5b033514610120578063e1af802c1461013357600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100ca575b600080fd5b610095610090366004612c04565b61013b565b60405190151581526020015b60405180910390f35b6100b26101d4565b6040516001600160a01b0390911681526020016100a1565b6100dd6100d8366004612cde565b6101e3565b005b6040517f65726332302d707570706574000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100dd61012e366004612cde565b6106a0565b6100b26106d2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f79f50b5b0000000000000000000000000000000000000000000000000000000014806101ce57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101de6106dc565b905090565b60006001600160a01b031661021f7f65726332302d7075707065740000000000000000000000000000000000000000838051906020012061070e565b6001600160a01b03161461025f576040517f1401206800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080828060200190518101906102769190612dd2565b90925090507f9a8d9ccdcfd28f8a8f8f9a8c000000000000000000000000000000000000000071ffffffffffffffffffffffffffffffffffff19831601610305576040517f0f31c63c00000000000000000000000000000000000000000000000000000000815271ffffffffffffffffffffffffffffffffffff19831660048201526024015b60405180910390fd5b61030d610835565b60006103176106d2565b6040516001600160a01b03828116602483015271ffffffffffffffffffffffffffffffffffff19861660448301529192507f00000000000000000000000000000000000000000000000000000000000000009091169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f472466c200000000000000000000000000000000000000000000000000000000179052516103d39190612eaa565b600060405180830381855af49150503d806000811461040e576040519150601f19603f3d011682016040523d82523d6000602084013e610413565b606091505b505050610428610422846108c5565b836108f7565b600061043384610999565b9050600061044183836109e6565b90507f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000601087901c16176001600160a01b03841663ef5d6bbb826104a26101d4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401600060405180830381600087803b15801561050157600080fd5b505af1158015610515573d6000803e3d6000fd5b505060408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610597935001905060405160208183030381529060405261059290612ec6565b610cb6565b6106185760408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610618910160405160208183030381529060405261061390612ec6565b610d9a565b60408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610697910160405160208183030381529060405261069090612ec6565b8284610de6565b50505050505050565b6040517fb6622fc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101de610ea6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061070b5750335b90565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061075a5761075a612eea565b602002602001018181525050828160018151811061077a5761077a612eea565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015281518082039093018352810190526000906108299061080190612ec6565b8360007e14010014000000000000000000000000000000000000000000000000000000610ee5565b60601c95945050505050565b6040805160008082526020820190925261086090651c1d5c1c195d60d21b908051906020012061070e565b6001600160a01b0316036108c357604051651c1d5c1c195d60d21b602082015260300160408051601f19818403018152908290527f217ef9250000000000000000000000000000000000000000000000000000000082526102fc91600401612f2c565b565b60006101ce613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610fa2565b600061094682600001516040805160f89290921b7fff00000000000000000000000000000000000000000000000000000000000000166020830152805160018184030181526021909201905290565b9050600061095c83602001518460400151611029565b9050600061097284602001518560400151611046565b6040805160008152602081019091529091506109918682868686611072565b505050505050565b60006101ce7f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d000000000000000000000000000000000000000000610fa2565b604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f466163746f72790000000000000000000000000000000000000000000000000060308201526000916001600160a01b03851691633ae7af089101604051602081830303815290604052610a7290612ec6565b6040516024810186905260440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb9eb8bfb00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610b0f929190600401612f3f565b6000604051808303816000875af1158015610b2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b569190810190612f58565b806020019051810190610b699190612fa1565b90506001600160a01b03831663bfdfaff77f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f44656c65676174696f6e00000000000000000000000000000000000000000000603082015201604051602081830303815290604052610c3590612ec6565b604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16909152610c7e92919060248101612fca565b600060405180830381600087803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b5050505092915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610cef57610cef612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d8690610d5e90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000610ee5565b9050610d928160f81c90565b949350505050565b610de3817e14010014000000000000000000000000000000000000000000000000000000610dc6611127565b610dce61119f565b610dd66111d9565b610dde61125e565b6112d5565b50565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e1c57610e1c612eea565b602002602001018181525050610ea08482600085604051602001610e6b919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b60408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061138e565b50505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610ee0573391505090565b919050565b600080610ef0610ea6565b9050306001600160a01b03821603610f1657610f0e86868686611404565b915050610d92565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990610f61908990899089908990600401613024565b602060405180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190613053565b6000610fb060706010613082565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b8151815160009181810160389190911b1760609190911b17611022565b6060828260405160200161105b929190613095565b604051602081830303815290604052905092915050565b600061107c610ea6565b9050306001600160a01b038216036110a05761109b868686868661143a565b610991565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb906110ed90899089908990899089906004016130c4565b600060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b50505050505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050605f8160008151811061116157611161612eea565b602002602001019060c581111561117a5761117a613115565b908160c581111561118d5761118d613115565b90525061119981611457565b91505090565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061116157611161612eea565b604080516001808252818301909252606091816020015b60608152602001906001900390816111f05790505090506040518060400160405280600b81526020017f6e616d65737061636549640000000000000000000000000000000000000000008152508160008151811061125057611250612eea565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816112755790505090506040518060400160405280600c81526020017f65726332304164647265737300000000000000000000000000000000000000008152508160008151811061125057611250612eea565b60006112df610ea6565b9050306001600160a01b03821603611304576112ff878787878787611612565b610697565b6040517f0ba51f490000000000000000000000000000000000000000000000000000000081526001600160a01b03821690630ba51f4990611353908a908a908a908a908a908a90600401613180565b600060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b5050505050505050505050565b6000611398610ea6565b9050306001600160a01b038216036113b75761109b86868686866118ff565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906110ed90899089908990899089906004016131ca565b60006114316114138686611914565b60ff858116601b0360080285901c1661142c858761196a565b6119ad565b95945050505050565b611450858585858561144b8b6119fe565b611afc565b5050505050565b6000601c82511115611481578151604051635318beb960e01b81526004016102fc91815260200190565b60008080805b855181101561155c5760006114c58783815181106114a7576114a7612eea565b602002602001015160c58111156114c0576114c0613115565b611deb565b9050806000036114da57600190920191611512565b8215611512576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811061153357611533612eea565b602002602001015160c581111561154c5761154c613115565b901b949094179350600101611487565b50600581111561158257604051635318beb960e01b8152600481018290526024016102fc565b8451819003600861159560026020613211565b61159f9190613224565b83901b9390931792600860016115b760026020613211565b6115c19190613211565b6115cb9190613224565b81901b939093179260086001806115e460026020613211565b6115ee9190613211565b6115f89190613211565b6116029190613224565b9190911b92909217949350505050565b613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000161480159061168b57507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b156116ec57613a3160f11b86876040516020016116aa91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102fc93929160040161323b565b6116f7856000611e4b565b611702846001611fcd565b61170d836000611fcd565b60e084901c60e885901c0160ff1682511461176d5760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff168151146117cd5760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff16146118455760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b61184e86612174565b156118a857858660405160200161186791815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526102fc9291600401612f3f565b6118f486868686866040516020016118c0919061327c565b604051602081830303815290604052866040516020016118e0919061327c565b604051602081830303815290604052612244565b610991866001612358565b611450858561190e848761196a565b8561244f565b6000828260405160200161192992919061328f565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff168110156119a55761199160ff601b83900360080287901c1683613082565b91508061199d816132bd565b91505061196f565b509392505050565b6000602082106119d3576020820484019350602082816119cf576119cf6132d7565b0691505b508254600882021b6020829003808411156119a5576001850154600882021c82179150509392505050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015260009101604051602081830303815290604052611a5d90612ec6565b8203611a8957507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201526101ce91611af39101604051602081830303815290604052611aed90612ec6565b846126a8565b602060006119ad565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611b3294939291906132ed565b60405180910390a2613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001603610991576000611b73876126c4565b905060005b8151811015611c56576000828281518110611b9557611b95612eea565b60200260200101519050611bc16001826affffffffffffffffffffff191661278c90919063ffffffff16565b15611c43576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611c10908c908c908c908c908c908c90600401613337565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050505b5080611c4e816132bd565b915050611b78565b506000611c638888611914565b90506000602087019050611c7b826000838a516127aa565b6000611c868561286a565b1115611d0a576000611c988a8a6128a7565b878155905060208601915060008060005b611cb28861286a565b8160ff161015611d0557611cc78d8d836128fd565b9250611ce28a8260ff166028026038011c64ffffffffff1690565b9150611cf183600087856127aa565b611cfb8286613082565b9450600101611ca9565b505050505b60005b835181101561111b576000848281518110611d2a57611d2a612eea565b60200260200101519050611d566002826affffffffffffffffffffff191661278c90919063ffffffff16565b15611dd8576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90611da5908e908e908e908e908e908e90600401613337565b600060405180830381600087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b505050505b5080611de3816132bd565b915050611d0d565b6000808260c5811115611e0057611e00613115565b60ff1690506061811015611e1a57601f1660010192915050565b60618360c5811115611e2e57611e2e613115565b03611e3c5750601492915050565b50600092915050565b50919050565b80158015611e57575081155b15611e91576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016102fc565b6000611e9c8361286a565b90506005811115611edc576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b6000611ee78461297d565b90506000611ef58383613082565b9050601c811115611f35576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b60005b828110156109915760ff601b82900360080287901c166000819003611f89576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115611fc4576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101611f38565b80158015611fd9575081155b15611ffa57604051635318beb960e01b8152600060048201526024016102fc565b60006120058361286a565b9050600581111561202c57604051635318beb960e01b8152600481018290526024016102fc565b60006120378461297d565b905060006120458383613082565b9050601c81111561206c57604051635318beb960e01b8152600481018290526024016102fc565b60008060005b8381101561212d57600061209a6120898a8461298f565b60c58111156114c0576114c0613115565b11156120e4578481106120d9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612125565b8481101561211e576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101612072565b5083821461215157604051635318beb960e01b8152600481018390526024016102fc565b84811461069757604051635318beb960e01b8152600481018290526024016102fc565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106121ad576121ad612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d869061221c90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000611404565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061227b8484611029565b905060006122898585611046565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106122c3576122c3612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c657300000000000000000000000000000000000000000000000000006030820152815180820390930183528101905261111b9061232f90612ec6565b828686867e60030220202000000000000000000000000000000000000000000000000000611afc565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061238e5761238e612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f757263654964730000000000000000000000000000000000000000006030820152815180820390930183528101905261244a906123fa90612ec6565b8260008560405160200161241591151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ff565b505050565b600061245b8585611914565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be85858560405161249193929190613390565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146124cd5750610ea0565b60006124d8866126c4565b905060005b81518110156125b75760008282815181106124fa576124fa612eea565b602002602001015190506125266004826affffffffffffffffffffff191661278c90919063ffffffff16565b156125a4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612571908b908b908b908b906004016133cd565b600060405180830381600087803b15801561258b57600080fd5b505af115801561259f573d6000803e3d6000fd5b505050505b50806125af816132bd565b9150506124dd565b506125cb828565ffffffffffff16856129b0565b60005b81518110156106975760008282815181106125eb576125eb612eea565b602002602001015190506126176008826affffffffffffffffffffff191661278c90919063ffffffff16565b15612695576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612662908b908b908b908b906004016133cd565b600060405180830381600087803b15801561267c57600080fd5b505af1158015612690573d6000803e3d6000fd5b505050505b50806126a0816132bd565b9150506125ce565b6040805160208101849052908101829052600090606001611929565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106126fe576126fe612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906127759061276d90612ec6565b8360006129c0565b9050610d9261278782600084516129fa565b612a8a565b60008160ff168261279d8560581c90565b1660ff1614905092915050565b821561282457602083106127d4576020830484019350602083816127d0576127d06132d7565b0692505b82156128245760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612815575050610ea0565b50600194909401939182019190035b5b602081106128465781518455600190930192602090910190601f1901612825565b8015610ea0576000600019600883021c198554845182169119161785555050505050565b6000600860018061287d60026020613211565b6128879190613211565b6128919190613211565b61289b9190613224565b8260ff911c1692915050565b600082826040516020016128bc92919061328f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161291292919061328f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008600161288760026020613211565b6000601b8290036008028360ff911c1660c581111561102257611022613115565b61244a83836020840184516127aa565b6060610d926129d08585856128fd565b6129f3846129de8888612a9b565b9060ff166028026038011c64ffffffffff1690565b6000612aae565b6000818311158015612a0d575083518211155b612a49578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102fc93929190613406565b60208401612a578482613082565b90506000612a658585613211565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006110228360156000612ad1565b6000611022612aaa84846128a7565b5490565b60405160208101601f19603f85840101166040528382526119a585858584612b4c565b60606000612adf8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281612b0557612b056132d7565b04905060405193506020840160208202810160405281855260005b82811015612b40578451871c825293870193602090910190600101612b20565b50505050509392505050565b8115612bbe5760208210612b7657602082048401935060208281612b7257612b726132d7565b0691505b8115612bbe5760208290036000600019600883021c1990508554600885021b811984511682821617845250818511612baf575050610ea0565b50600194909401939283900392015b5b60208310612be05783548152600190930192601f1990920191602001612bbf565b8215610ea0576000600019600885021c198251865482169119161782525050505050565b600060208284031215612c1657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461102257600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612c7f57612c7f612c46565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612cae57612cae612c46565b604052919050565b600067ffffffffffffffff821115612cd057612cd0612c46565b50601f01601f191660200190565b600060208284031215612cf057600080fd5b813567ffffffffffffffff811115612d0757600080fd5b8201601f81018413612d1857600080fd5b8035612d2b612d2682612cb6565b612c85565b818152856020838501011115612d4057600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b83811015612d79578181015183820152602001612d61565b50506000910152565b6000612d90612d2684612cb6565b9050828152838383011115612da457600080fd5b611022836020830184612d5e565b600082601f830112612dc357600080fd5b61102283835160208501612d82565b60008060408385031215612de557600080fd5b825171ffffffffffffffffffffffffffffffffffff1981168114612e0857600080fd5b602084015190925067ffffffffffffffff80821115612e2657600080fd5b9084019060608287031215612e3a57600080fd5b612e42612c5c565b825160ff81168114612e5357600080fd5b8152602083015182811115612e6757600080fd5b612e7388828601612db2565b602083015250604083015182811115612e8b57600080fd5b612e9788828601612db2565b6040830152508093505050509250929050565b60008251612ebc818460208701612d5e565b9190910192915050565b80516020808301519190811015611e455760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b60008151808452612f18816020860160208601612d5e565b601f01601f19169290920160200192915050565b6020815260006110226020830184612f00565b828152604060208201526000610d926040830184612f00565b600060208284031215612f6a57600080fd5b815167ffffffffffffffff811115612f8157600080fd5b8201601f81018413612f9257600080fd5b610d9284825160208401612d82565b600060208284031215612fb357600080fd5b81516001600160a01b038116811461102257600080fd5b8381528260208201526060604082015260006114316060830184612f00565b600081518084526020808501945080840160005b8381101561301957815187529582019590820190600101612ffd565b509495945050505050565b84815260806020820152600061303d6080830186612fe9565b60ff949094166040830152506060015292915050565b60006020828403121561306557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ce576101ce61306c565b600083516130a7818460208801612d5e565b8351908301906130bb818360208801612d5e565b01949350505050565b85815260a0602082015260006130dd60a0830187612fe9565b82810360408401526130ef8187612f00565b905084606084015282810360808401526131098185612f00565b98975050505050505050565b634e487b7160e01b600052602160045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613173578284038952613161848351612f00565b98850198935090840190600101613149565b5091979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006131ab60c083018561312b565b82810360a08401526131bd818561312b565b9998505050505050505050565b85815260a0602082015260006131e360a0830187612fe9565b60ff8616604084015282810360608401526131fe8186612f00565b9150508260808301529695505050505050565b818103818111156101ce576101ce61306c565b80820281158282048414176101ce576101ce61306c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006114316060830184612f00565b602081526000611022602083018461312b565b82815260006020808301845182860160005b82811015613173578151845292840192908401906001016132a1565b600060001982036132d0576132d061306c565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6080815260006133006080830187612fe9565b82810360208401526133128187612f00565b9050846040840152828103606084015261332c8185612f00565b979650505050505050565b86815260c06020820152600061335060c0830188612fe9565b82810360408401526133628188612f00565b9050856060840152828103608084015261337c8186612f00565b9150508260a0830152979650505050505050565b6060815260006133a36060830186612fe9565b65ffffffffffff8516602084015282810360408401526133c38185612f00565b9695505050505050565b8481526080602082015260006133e66080830186612fe9565b65ffffffffffff85166040840152828103606084015261332c8185612f00565b6060815260006134196060830186612f00565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b50614873806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063472466c214610030575b600080fd5b61004361003e366004612129565b610045565b005b61005661005182610155565b61018d565b610067610062826101d9565b61020b565b61007861007382610247565b610279565b8173ffffffffffffffffffffffffffffffffffffffff16633350b6a961009d836102bd565b6040516100a99061211c565b604051809103906000f0801580156100c5573d6000803e3d6000fd5b506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015260016044820152606401600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505050505050565b6000610187613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610306565b92915050565b6101d6817e200100200000000000000000000000000000000000000000000000000000006101b961038d565b6101c161044a565b6101c9610484565b6101d161055c565b6105d3565b50565b6000610187613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610306565b6101d6817e200100200000000000000000000000000000000000000000000000000000006102376106a7565b61023f61044a565b6101c96106e1565b6000610187613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610306565b6101d6817e010102010000000000000000000000000000000000000000000000000000006102a5610758565b6102ad610771565b6102b5610836565b6101d1610869565b60006101877f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d0000000000000000000000000000000000000000005b6000610314607060106121b6565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106103c7576103c76121c9565b602002602001019060c58111156103e0576103e06121df565b908160c58111156103f3576103f36121df565b8152505060618160018151811061040c5761040c6121c9565b602002602001019060c5811115610425576104256121df565b908160c5811115610438576104386121df565b90525061044481610989565b91505090565b60408051600180825281830190925260009182919060208083019080368337019050509050601f8160008151811061040c5761040c6121c9565b6040805160028082526060828101909352816020015b606081526020019060019003908161049a5790505090506040518060400160405280600781526020017f6163636f756e7400000000000000000000000000000000000000000000000000815250816000815181106104fa576104fa6121c9565b60200260200101819052506040518060400160405280600781526020017f7370656e646572000000000000000000000000000000000000000000000000008152508160018151811061054e5761054e6121c9565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816105735790505090506040518060400160405280600581526020017f76616c75650000000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b60006105dd610b4d565b90503073ffffffffffffffffffffffffffffffffffffffff82160361060f5761060a878787878787610b99565b61069e565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f499061066b908a908a908a908a908a908a9060040161229d565b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505b50505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061040c5761040c6121c9565b604080516001808252818301909252606091816020015b60608152602001906001900390816106f85790505090506040518060400160405280600781526020017f6163636f756e74000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b6040805160008082526020820190925261044481610989565b60408051600380825260808201909252600091829190602082016060803683370190505090506000816000815181106107ac576107ac6121c9565b602002602001019060c58111156107c5576107c56121df565b908160c58111156107d8576107d86121df565b8152505060c5816001815181106107f1576107f16121c9565b602002602001019060c581111561080a5761080a6121df565b908160c581111561081d5761081d6121df565b8152505060c58160028151811061040c5761040c6121c9565b60408051600080825260208201909252606091610863565b606081526020019060019003908161084e5790505b50905090565b60408051600380825260808201909252606091816020015b60608152602001906001900390816108815790505090506040518060400160405280600881526020017f646563696d616c73000000000000000000000000000000000000000000000000815250816000815181106108e1576108e16121c9565b60200260200101819052506040518060400160405280600481526020017f6e616d650000000000000000000000000000000000000000000000000000000081525081600181518110610935576109356121c9565b60200260200101819052506040518060400160405280600681526020017f73796d626f6c00000000000000000000000000000000000000000000000000008152508160028151811061054e5761054e6121c9565b6000601c825111156109bc578151604051635318beb960e01b81526004016109b391815260200190565b60405180910390fd5b60008080805b8551811015610a97576000610a008783815181106109e2576109e26121c9565b602002602001015160c58111156109fb576109fb6121df565b610e86565b905080600003610a1557600190920191610a4d565b8215610a4d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610a6e57610a6e6121c9565b602002602001015160c5811115610a8757610a876121df565b901b9490941793506001016109c2565b506005811115610abd57604051635318beb960e01b8152600481018290526024016109b3565b84518190036008610ad0600260206122e7565b610ada91906122fa565b83901b939093179260086001610af2600260206122e7565b610afc91906122e7565b610b0691906122fa565b81901b93909317926008600180610b1f600260206122e7565b610b2991906122e7565b610b3391906122e7565b610b3d91906122fa565b9190911b92909217949350505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610b94573391505090565b919050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610c1257507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610c7357613a3160f11b8687604051602001610c3191815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526109b3939291600401612311565b610c7e856000610ee6565b610c89846001611068565b610c94836000611068565b60e084901c60e885901c0160ff16825114610cf45760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff16815114610d545760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610dcc5760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b610dd58661120f565b15610e2f578586604051602001610dee91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526109b39291600401612352565b610e7b8686868686604051602001610e47919061236b565b60405160208183030381529060405286604051602001610e67919061236b565b6040516020818303038152906040526112f3565b61014d866001611413565b6000808260c5811115610e9b57610e9b6121df565b60ff1690506061811015610eb557601f1660010192915050565b60618360c5811115610ec957610ec96121df565b03610ed75750601492915050565b50600092915050565b50919050565b80158015610ef2575081155b15610f2c576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016109b3565b6000610f378361150a565b90506005811115610f77576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b6000610f8284611547565b90506000610f9083836121b6565b9050601c811115610fd0576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b60005b8281101561014d5760ff601b82900360080287901c166000819003611024576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561105f576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101610fd3565b80158015611074575081155b1561109557604051635318beb960e01b8152600060048201526024016109b3565b60006110a08361150a565b905060058111156110c757604051635318beb960e01b8152600481018290526024016109b3565b60006110d284611547565b905060006110e083836121b6565b9050601c81111561110757604051635318beb960e01b8152600481018290526024016109b3565b60008060005b838110156111c85760006111356111248a84611559565b60c58111156109fb576109fb6121df565b111561117f57848110611174576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916111c0565b848110156111b9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b60010161110d565b508382146111ec57604051635318beb960e01b8152600481018390526024016109b3565b84811461069e57604051635318beb960e01b8152600481018290526024016109b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611248576112486121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112df906112b79061237e565b8360007e01010001000000000000000000000000000000000000000000000000000000611581565b90506112eb8160f81c90565b949350505050565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061132a84846115b7565b9050600061133885856115d4565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110611372576113726121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052611407906113de9061237e565b828686867e60030220202000000000000000000000000000000000000000000000000000611600565b50505050505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611449576114496121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052611505906114b59061237e565b826000856040516020016114d091151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ef565b505050565b6000600860018061151d600260206122e7565b61152791906122e7565b61153191906122e7565b61153b91906122fa565b8260ff911c1692915050565b600060086001611527600260206122e7565b6000601b8290036008028360ff911c1660c581111561157a5761157a6121df565b9392505050565b60006115ae611590868661190b565b60ff858116601b0360080285901c166115a98587611961565b6119a4565b95945050505050565b8151815160009181810160389190911b1760609190911b1761157a565b606082826040516020016115e99291906123a2565b604051602081830303815290604052905092915050565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611636949392919061240c565b60405180910390a2613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000160361014d576000611677876119f5565b905060005b815181101561175a576000828281518110611699576116996121c9565b602002602001015190506116c56001826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611747576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611714908c908c908c908c908c908c90600401612456565b600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b5080611752816124af565b91505061167c565b506000611767888861190b565b9050600060208701905061177f826000838a51611adb565b600061178a8561150a565b111561180e57600061179c8a8a611b99565b878155905060208601915060008060005b6117b68861150a565b8160ff161015611809576117cb8d8d83611bef565b92506117e68a8260ff166028026038011c64ffffffffff1690565b91506117f58360008785611adb565b6117ff82866121b6565b94506001016117ad565b505050505b60005b835181101561140757600084828151811061182e5761182e6121c9565b6020026020010151905061185a6002826affffffffffffffffffffff1916611abd90919063ffffffff16565b156118dc576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf906118a9908e908e908e908e908e908e90600401612456565b600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b505050505b50806118e7816124af565b915050611811565b61190485856118fe8487611961565b85611c6f565b5050505050565b600082826040516020016119209291906124c9565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561199c5761198860ff601b83900360080287901c16836121b6565b915080611994816124af565b915050611966565b509392505050565b6000602082106119ca576020820484019350602082816119c6576119c6612504565b0691505b508254600882021b60208290038084111561199c576001850154600882021c82179150509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a2f57611a2f6121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611aa690611a9e9061237e565b836000611ec8565b90506112eb611ab88260008451611f02565b611f92565b60008160ff1682611ace8560581c90565b1660ff1614905092915050565b8215611b555760208310611b0557602083048401935060208381611b0157611b01612504565b0692505b8215611b555760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611b46575050611b93565b50600194909401939182019190035b5b60208110611b775781518455600190930192602090910190601f1901611b56565b8015611b935783548251600019600884021c9182169119161784555b50505050565b60008282604051602001611bae9291906124c9565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001611c049291906124c9565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000611c7b858561190b565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611cb19392919061251a565b60405180910390a2613a3160f11b857fffff0000000000000000000000000000000000000000000000000000000000001614611ced5750611b93565b6000611cf8866119f5565b905060005b8151811015611dd7576000828281518110611d1a57611d1a6121c9565b60200260200101519050611d466004826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611dc4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611d91908b908b908b908b90600401612557565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050505b5080611dcf816124af565b915050611cfd565b50611deb828565ffffffffffff1685611fa3565b60005b815181101561069e576000828281518110611e0b57611e0b6121c9565b60200260200101519050611e376008826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611eb5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611e82908b908b908b908b90600401612557565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050505b5080611ec0816124af565b915050611dee565b60606112eb611ed8858585611bef565b611efb84611ee68888611fb3565b9060ff166028026038011c64ffffffffff1690565b6000611fc6565b6000818311158015611f15575083518211155b611f51578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016109b393929190612590565b60208401611f5f84826121b6565b90506000611f6d85856122e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061157a8360156000611fe9565b6115058383602084018451611adb565b600061157a611fc28484611b99565b5490565b60405160208101601f19603f858401011660405283825261199c85858584612064565b60606000611ff78560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161201d5761201d612504565b04905060405193506020840160208202810160405281855260005b82811015612058578451871c825293870193602090910190600101612038565b50505050509392505050565b81156120d6576020821061208e5760208204840193506020828161208a5761208a612504565b0691505b81156120d65760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116120c7575050611b93565b50600194909401939283900392015b5b602083106120f85783548152600190930192601f19909201916020016120d7565b8215611b93576000600019600885021c198251865482169119161782525050505050565b6122b1806125b683390190565b6000806040838503121561213c57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461216057600080fd5b915060208301357fffffffffffffffffffffffffffff0000000000000000000000000000000000008116811461219557600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610187576101876121a0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156122105781810151838201526020016121f8565b50506000910152565b600081518084526122318160208601602086016121f5565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561229057601f1986840301895261227e838351612219565b98840198925090830190600101612262565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006122c860c0830185612245565b82810360a08401526122da8185612245565b9998505050505050505050565b81810381811115610187576101876121a0565b8082028115828204841417610187576101876121a0565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006115ae6060830184612219565b8281526040602082015260006112eb6040830184612219565b60208152600061157a6020830184612245565b80516020808301519190811015610ee05760001960209190910360031b1b16919050565b600083516123b48184602088016121f5565b8351908301906123c88183602088016121f5565b01949350505050565b600081518084526020808501945080840160005b83811015612401578151875295820195908201906001016123e5565b509495945050505050565b60808152600061241f60808301876123d1565b82810360208401526124318187612219565b9050846040840152828103606084015261244b8185612219565b979650505050505050565b86815260c06020820152600061246f60c08301886123d1565b82810360408401526124818188612219565b9050856060840152828103608084015261249b8186612219565b9150508260a0830152979650505050505050565b600060001982036124c2576124c26121a0565b5060010190565b82815260006020808301845182860160005b828110156124f7578151845292840192908401906001016124db565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b60608152600061252d60608301866123d1565b65ffffffffffff85166020840152828103604084015261254d8185612219565b9695505050505050565b84815260806020820152600061257060808301866123d1565b65ffffffffffff85166040840152828103606084015261244b8185612219565b6060815260006125a36060830186612219565b6020830194909452506040015291905056fe608060405234801561001057600080fd5b50612291806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f19116100975780639dc29fac116100665780639dc29fac146101e8578063a9059cbb146101fb578063dd62ed3e1461020e578063e1af802c1461022157600080fd5b806340c10f19146101ad57806345ec9354146101c257806370a08231146101cd57806395d89b41146101e057600080fd5b8063119df25f116100d3578063119df25f1461014a57806318160ddd1461016a57806323b872dd14610180578063313ce5671461019357600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063095ea7b314610137575b600080fd5b61010d610108366004611d96565b610229565b60405190151581526020015b60405180910390f35b61012a6102c2565b6040516101199190611e28565b61010d610145366004611e52565b6102e1565b610152610303565b6040516001600160a01b039091168152602001610119565b61017261030d565b604051908152602001610119565b61010d61018e366004611e7c565b610327565b61019b610357565b60405160ff9091168152602001610119565b6101c06101bb366004611e52565b61036c565b005b36601f190135610172565b6101726101db366004611eb8565b6103cc565b61012a6103e7565b6101c06101f6366004611e52565b6103fc565b61010d610209366004611e52565b610453565b61017261021c366004611ed3565b61046b565b610152610487565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb42128800000000000000000000000000000000000000000000000000000000014806102bc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606102dc6102d76102d2610491565b6104af565b6104e1565b905090565b6000806102ec610303565b90506102f9818585610507565b5060019392505050565b60006102dc610665565b60006102dc61032261031d610491565b610697565b6106c9565b600080610332610303565b905061033f8582856106ee565b61034a858585610776565b60019150505b9392505050565b60006102dc6103676102d2610491565b61080c565b610374610854565b6001600160a01b0382166103bc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103c86000838361086f565b5050565b60006102bc6103e16103dc610491565b610a37565b83610a69565b60606102dc6103f76102d2610491565b610ad7565b610404610854565b6001600160a01b038216610447576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6103c88260008361086f565b60008061045e610303565b90506102f9818585610776565b600061035061048061047b610491565b610af6565b8484610b28565b60006102dc610bc3565b60008061049d30610c02565b90506104a98160101b90565b91505090565b60006102bc613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610cde565b604080516000808252602082019092526060916104ff848383610d65565b949350505050565b6001600160a01b03831661054a576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b03821661058d576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6105a361059b61047b610491565b848484610e2c565b6105ab610ee3565b6001600160a01b031663c9a34acd7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256105ea866001600160a01b031690565b6001600160a01b0386166040805160208101889052016040516020818303038152906040526040518563ffffffff1660e01b815260040161062e9493929190611f1c565b600060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b50505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806106945750335b90565b60006102bc613a3160f11b837f546f74616c537570706c79000000000000000000000000000000000000000000610cde565b6040805160008082526020820190925260006104ff848383630100080160dd1b610fbe565b60006107056106fe61047b610491565b8585610b28565b905060001981146107705781811015610763576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016103b3565b6107708484848403610507565b50505050565b6001600160a01b0383166107b9576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b0382166107fc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b61080783838361086f565b505050565b6040805160008082526020820190925260006108498483837e01010201000000000000000000000000000000000000000000000000000000610fbe565b60f81c949350505050565b61086d61086030610c02565b610868610303565b61107b565b565b6000610879610491565b9050600061088682610697565b9050600061089383610a37565b90506001600160a01b0386166108c5576108c082856108b1856106c9565b6108bb9190611f57565b61111c565b610935565b60006108d18288610a69565b905084811015610926576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101829052604481018690526064016103b3565b6109338288878403611143565b505b6001600160a01b03851661095c576109578285610951856106c9565b0361111c565b610972565b61097281868661096c858a610a69565b01611143565b61097a610ee3565b6001600160a01b031663c9a34acd7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b9896001600160a01b031690565b6001600160a01b03891660408051602081018b9052016040516020818303038152906040526040518563ffffffff1660e01b81526004016109fd9493929190611f1c565b600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b50505050505050505050565b60006102bc613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610cde565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610aae57610aae611f6a565b60209081029190910101526000610ace858383630100080160dd1b610fbe565b95945050505050565b604080516000808252602082019092526060916104ff84836001610d65565b60006102bc613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610cde565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110610b6d57610b6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610b9957610b99611f6a565b60209081029190910101526000610bb9868383630100080160dd1b610fbe565b9695505050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610bfd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610c4757610c47611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526000906104ff90610cce90611f80565b836000630100080160dd1b610fbe565b6000610cec60706010611f57565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b60606000610d71610bc3565b9050306001600160a01b03821603610d9657610d8e8585856111ab565b915050610350565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610ddf90889088908890600401611fe2565b600060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8e919081019061200e565b509392505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110610e6d57610e6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610e9957610e99611f6a565b602002602001018181525050610edc8582600085604051602001610ebf91815260200190565b60408051601f19818403018152919052630100080160dd1b6111e5565b5050505050565b600080610eef30610c02565b60408051613a3160f11b60208201527f707570706574000000000000000000000000000000000000000000000000000060228201527f50757070657452656769737472790000000000000000000000000000000000006030820152919250600091610f739101604051602081830303815290604052610f6d90611f80565b83611268565b90506001600160a01b0381166102bc576040517f9434f7e1000000000000000000000000000000000000000000000000000000008152306004820152602481018390526044016103b3565b600080610fc9610bc3565b9050306001600160a01b03821603610fef57610fe7868686866112e5565b9150506104ff565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061103a9089908990899089906004016120bb565b602060405180830381865afa158015611057573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe791906120ea565b6001600160a01b0381166110d07f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617611312565b6001600160a01b0316146103c8576110e782611405565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103b3929190612103565b60408051600080825260208201835291810183905290610807908490839060608201610ebf565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b8160008151811061118557611185611f6a565b6020026020010181815250506107708482600085604051602001610ebf91815260200190565b60606104ff6111bb858585611581565b6111de846111c98888611601565b9060ff166028026038011c64ffffffffff1690565b6000611614565b60006111ef610bc3565b9050306001600160a01b038216036112135761120e8686868686611637565b611260565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906109fd908990899089908990899060040161212e565b505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112a1576112a1611f6a565b602090810291909101015260006112d98583837e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c95945050505050565b6000610ace6112f4868661164c565b60ff858116601b0360080285901c1661130d85876116a2565b6116dd565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061134b5761134b611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906113fa906113d290611f80565b8360007e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c949350505050565b606081601081901b60006114188361172e565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561146b577fffffffffffffffffffffffffffff000000000000000000000000000000000000831661148d565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156114bb57826114dd565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040517fffff00000000000000000000000000000000000000000000000000000000000090931660208401527f3a00000000000000000000000000000000000000000000000000000000000000602284018190527fffffffffffffffffffffffffffffffff00000000000000000000000000000000928316602385015260338401521660348201526044016040516020818303038152906040529350505050919050565b60008383604051602001611596929190612175565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006103506116108484611745565b5490565b60405160208101601f19603f8584010116604052838252610e248585858461179b565b610edc858561164684876116a2565b85611853565b60008282604051602001611661929190612175565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610e24576116c960ff601b83900360080287901c1683611f57565b9150806116d5816121b0565b9150506116a7565b600060208210611703576020820484019350602082816116ff576116ff6121ca565b0691505b508254600882021b602082900380841115610e24576001850154600882021c82179150509392505050565b600061173c60706010611f57565b9190911b919050565b6000828260405160200161175a929190612175565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b811561180d57602082106117c5576020820484019350602082816117c1576117c16121ca565b0691505b811561180d5760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116117fe575050610770565b50600194909401939283900392015b5b6020831061182f5783548152600190930192601f199092019160200161180e565b8215610770576000600019600885021c198251865482169119161782525050505050565b600061185f858561164c565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611895939291906121e0565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146118d15750610770565b60006118dc86611aac565b905060005b81518110156119bb5760008282815181106118fe576118fe611f6a565b6020026020010151905061192a6004826affffffffffffffffffffff1916611b8c90919063ffffffff16565b156119a8576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611975908b908b908b908b90600401612213565b600060405180830381600087803b15801561198f57600080fd5b505af11580156119a3573d6000803e3d6000fd5b505050505b50806119b3816121b0565b9150506118e1565b506119cf828565ffffffffffff1685611baa565b60005b815181101561065c5760008282815181106119ef576119ef611f6a565b60200260200101519050611a1b6008826affffffffffffffffffffff1916611b8c90919063ffffffff16565b15611a99576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611a66908b908b908b908b90600401612213565b600060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050505b5080611aa4816121b0565b9150506119d2565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ae657611ae6611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b7590611b6d90611f80565b8360006111ab565b90506104ff611b878260008451611bba565b611c4a565b60008160ff1682611b9d8560581c90565b1660ff1614905092915050565b6108078383602084018451611c5b565b6000818311158015611bcd575083518211155b611c09578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016103b39392919061224c565b60208401611c178482611f57565b90506000611c258585612271565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006103508360156000611d1b565b8215611cd55760208310611c8557602083048401935060208381611c8157611c816121ca565b0692505b8215611cd55760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611cc6575050610770565b50600194909401939182019190035b5b60208110611cf75781518455600190930192602090910190601f1901611cd6565b8015610770576000600019600883021c198554845182169119161785555050505050565b60606000611d298560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611d4f57611d4f6121ca565b04905060405193506020840160208202810160405281855260005b82811015611d8a578451871c825293870193602090910190600101611d6a565b50505050509392505050565b600060208284031215611da857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461035057600080fd5b60005b83811015611df3578181015183820152602001611ddb565b50506000910152565b60008151808452611e14816020860160208601611dd8565b601f01601f19169290920160200192915050565b6020815260006103506020830184611dfc565b80356001600160a01b0381168114610bfd57600080fd5b60008060408385031215611e6557600080fd5b611e6e83611e3b565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b611e9a84611e3b565b9250611ea860208501611e3b565b9150604084013590509250925092565b600060208284031215611eca57600080fd5b61035082611e3b565b60008060408385031215611ee657600080fd5b611eef83611e3b565b9150611efd60208401611e3b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b848152836020820152826040820152608060608201526000610bb96080830184611dfc565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bc576102bc611f41565b634e487b7160e01b600052603260045260246000fd5b80516020808301519190811015611fa1576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b83811015611fd757815187529582019590820190600101611fbb565b509495945050505050565b838152606060208201526000611ffb6060830185611fa7565b905060ff83166040830152949350505050565b60006020828403121561202057600080fd5b815167ffffffffffffffff8082111561203857600080fd5b818401915084601f83011261204c57600080fd5b81518181111561205e5761205e611f06565b604051601f8201601f19908116603f0116810190838211818310171561208657612086611f06565b8160405282815287602084870101111561209f57600080fd5b6120b0836020830160208801611dd8565b979650505050505050565b8481526080602082015260006120d46080830186611fa7565b60ff949094166040830152506060015292915050565b6000602082840312156120fc57600080fd5b5051919050565b6040815260006121166040830185611dfc565b90506001600160a01b03831660208301529392505050565b85815260a06020820152600061214760a0830187611fa7565b60ff8616604084015282810360608401526121628186611dfc565b9150508260808301529695505050505050565b82815260006020808301845182860160005b828110156121a357815184529284019290840190600101612187565b5091979650505050505050565b600060001982036121c3576121c3611f41565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6060815260006121f36060830186611fa7565b65ffffffffffff851660208401528281036040840152610bb98185611dfc565b84815260806020820152600061222c6080830186611fa7565b65ffffffffffff8516604084015282810360608401526120b08185611dfc565b60608152600061225f6060830186611dfc565b60208301949094525060400152919050565b818103818111156102bc576102bc611f4156fea164736f6c6343000815000aa164736f6c6343000815000a","sourceMap":"1229:2128:228:-:0;;;1370:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1322:85:228;;;1229:2128;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100df57806345ec93541461010d5780637c5b033514610120578063e1af802c1461013357600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100ca575b600080fd5b610095610090366004612c04565b61013b565b60405190151581526020015b60405180910390f35b6100b26101d4565b6040516001600160a01b0390911681526020016100a1565b6100dd6100d8366004612cde565b6101e3565b005b6040517f65726332302d707570706574000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100dd61012e366004612cde565b6106a0565b6100b26106d2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f79f50b5b0000000000000000000000000000000000000000000000000000000014806101ce57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101de6106dc565b905090565b60006001600160a01b031661021f7f65726332302d7075707065740000000000000000000000000000000000000000838051906020012061070e565b6001600160a01b03161461025f576040517f1401206800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080828060200190518101906102769190612dd2565b90925090507f9a8d9ccdcfd28f8a8f8f9a8c000000000000000000000000000000000000000071ffffffffffffffffffffffffffffffffffff19831601610305576040517f0f31c63c00000000000000000000000000000000000000000000000000000000815271ffffffffffffffffffffffffffffffffffff19831660048201526024015b60405180910390fd5b61030d610835565b60006103176106d2565b6040516001600160a01b03828116602483015271ffffffffffffffffffffffffffffffffffff19861660448301529192507f00000000000000000000000000000000000000000000000000000000000000009091169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f472466c200000000000000000000000000000000000000000000000000000000179052516103d39190612eaa565b600060405180830381855af49150503d806000811461040e576040519150601f19603f3d011682016040523d82523d6000602084013e610413565b606091505b505050610428610422846108c5565b836108f7565b600061043384610999565b9050600061044183836109e6565b90507f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000601087901c16176001600160a01b03841663ef5d6bbb826104a26101d4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401600060405180830381600087803b15801561050157600080fd5b505af1158015610515573d6000803e3d6000fd5b505060408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610597935001905060405160208183030381529060405261059290612ec6565b610cb6565b6106185760408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610618910160405160208183030381529060405261061390612ec6565b610d9a565b60408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610697910160405160208183030381529060405261069090612ec6565b8284610de6565b50505050505050565b6040517fb6622fc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101de610ea6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061070b5750335b90565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061075a5761075a612eea565b602002602001018181525050828160018151811061077a5761077a612eea565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015281518082039093018352810190526000906108299061080190612ec6565b8360007e14010014000000000000000000000000000000000000000000000000000000610ee5565b60601c95945050505050565b6040805160008082526020820190925261086090651c1d5c1c195d60d21b908051906020012061070e565b6001600160a01b0316036108c357604051651c1d5c1c195d60d21b602082015260300160408051601f19818403018152908290527f217ef9250000000000000000000000000000000000000000000000000000000082526102fc91600401612f2c565b565b60006101ce613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610fa2565b600061094682600001516040805160f89290921b7fff00000000000000000000000000000000000000000000000000000000000000166020830152805160018184030181526021909201905290565b9050600061095c83602001518460400151611029565b9050600061097284602001518560400151611046565b6040805160008152602081019091529091506109918682868686611072565b505050505050565b60006101ce7f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d000000000000000000000000000000000000000000610fa2565b604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f466163746f72790000000000000000000000000000000000000000000000000060308201526000916001600160a01b03851691633ae7af089101604051602081830303815290604052610a7290612ec6565b6040516024810186905260440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb9eb8bfb00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610b0f929190600401612f3f565b6000604051808303816000875af1158015610b2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b569190810190612f58565b806020019051810190610b699190612fa1565b90506001600160a01b03831663bfdfaff77f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f44656c65676174696f6e00000000000000000000000000000000000000000000603082015201604051602081830303815290604052610c3590612ec6565b604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16909152610c7e92919060248101612fca565b600060405180830381600087803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b5050505092915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610cef57610cef612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d8690610d5e90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000610ee5565b9050610d928160f81c90565b949350505050565b610de3817e14010014000000000000000000000000000000000000000000000000000000610dc6611127565b610dce61119f565b610dd66111d9565b610dde61125e565b6112d5565b50565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e1c57610e1c612eea565b602002602001018181525050610ea08482600085604051602001610e6b919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b60408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061138e565b50505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610ee0573391505090565b919050565b600080610ef0610ea6565b9050306001600160a01b03821603610f1657610f0e86868686611404565b915050610d92565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990610f61908990899089908990600401613024565b602060405180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190613053565b6000610fb060706010613082565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b8151815160009181810160389190911b1760609190911b17611022565b6060828260405160200161105b929190613095565b604051602081830303815290604052905092915050565b600061107c610ea6565b9050306001600160a01b038216036110a05761109b868686868661143a565b610991565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb906110ed90899089908990899089906004016130c4565b600060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b50505050505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050605f8160008151811061116157611161612eea565b602002602001019060c581111561117a5761117a613115565b908160c581111561118d5761118d613115565b90525061119981611457565b91505090565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061116157611161612eea565b604080516001808252818301909252606091816020015b60608152602001906001900390816111f05790505090506040518060400160405280600b81526020017f6e616d65737061636549640000000000000000000000000000000000000000008152508160008151811061125057611250612eea565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816112755790505090506040518060400160405280600c81526020017f65726332304164647265737300000000000000000000000000000000000000008152508160008151811061125057611250612eea565b60006112df610ea6565b9050306001600160a01b03821603611304576112ff878787878787611612565b610697565b6040517f0ba51f490000000000000000000000000000000000000000000000000000000081526001600160a01b03821690630ba51f4990611353908a908a908a908a908a908a90600401613180565b600060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b5050505050505050505050565b6000611398610ea6565b9050306001600160a01b038216036113b75761109b86868686866118ff565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906110ed90899089908990899089906004016131ca565b60006114316114138686611914565b60ff858116601b0360080285901c1661142c858761196a565b6119ad565b95945050505050565b611450858585858561144b8b6119fe565b611afc565b5050505050565b6000601c82511115611481578151604051635318beb960e01b81526004016102fc91815260200190565b60008080805b855181101561155c5760006114c58783815181106114a7576114a7612eea565b602002602001015160c58111156114c0576114c0613115565b611deb565b9050806000036114da57600190920191611512565b8215611512576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811061153357611533612eea565b602002602001015160c581111561154c5761154c613115565b901b949094179350600101611487565b50600581111561158257604051635318beb960e01b8152600481018290526024016102fc565b8451819003600861159560026020613211565b61159f9190613224565b83901b9390931792600860016115b760026020613211565b6115c19190613211565b6115cb9190613224565b81901b939093179260086001806115e460026020613211565b6115ee9190613211565b6115f89190613211565b6116029190613224565b9190911b92909217949350505050565b613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000161480159061168b57507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b156116ec57613a3160f11b86876040516020016116aa91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102fc93929160040161323b565b6116f7856000611e4b565b611702846001611fcd565b61170d836000611fcd565b60e084901c60e885901c0160ff1682511461176d5760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff168151146117cd5760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff16146118455760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b61184e86612174565b156118a857858660405160200161186791815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526102fc9291600401612f3f565b6118f486868686866040516020016118c0919061327c565b604051602081830303815290604052866040516020016118e0919061327c565b604051602081830303815290604052612244565b610991866001612358565b611450858561190e848761196a565b8561244f565b6000828260405160200161192992919061328f565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff168110156119a55761199160ff601b83900360080287901c1683613082565b91508061199d816132bd565b91505061196f565b509392505050565b6000602082106119d3576020820484019350602082816119cf576119cf6132d7565b0691505b508254600882021b6020829003808411156119a5576001850154600882021c82179150509392505050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015260009101604051602081830303815290604052611a5d90612ec6565b8203611a8957507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201526101ce91611af39101604051602081830303815290604052611aed90612ec6565b846126a8565b602060006119ad565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611b3294939291906132ed565b60405180910390a2613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001603610991576000611b73876126c4565b905060005b8151811015611c56576000828281518110611b9557611b95612eea565b60200260200101519050611bc16001826affffffffffffffffffffff191661278c90919063ffffffff16565b15611c43576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611c10908c908c908c908c908c908c90600401613337565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050505b5080611c4e816132bd565b915050611b78565b506000611c638888611914565b90506000602087019050611c7b826000838a516127aa565b6000611c868561286a565b1115611d0a576000611c988a8a6128a7565b878155905060208601915060008060005b611cb28861286a565b8160ff161015611d0557611cc78d8d836128fd565b9250611ce28a8260ff166028026038011c64ffffffffff1690565b9150611cf183600087856127aa565b611cfb8286613082565b9450600101611ca9565b505050505b60005b835181101561111b576000848281518110611d2a57611d2a612eea565b60200260200101519050611d566002826affffffffffffffffffffff191661278c90919063ffffffff16565b15611dd8576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90611da5908e908e908e908e908e908e90600401613337565b600060405180830381600087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b505050505b5080611de3816132bd565b915050611d0d565b6000808260c5811115611e0057611e00613115565b60ff1690506061811015611e1a57601f1660010192915050565b60618360c5811115611e2e57611e2e613115565b03611e3c5750601492915050565b50600092915050565b50919050565b80158015611e57575081155b15611e91576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016102fc565b6000611e9c8361286a565b90506005811115611edc576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b6000611ee78461297d565b90506000611ef58383613082565b9050601c811115611f35576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b60005b828110156109915760ff601b82900360080287901c166000819003611f89576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115611fc4576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101611f38565b80158015611fd9575081155b15611ffa57604051635318beb960e01b8152600060048201526024016102fc565b60006120058361286a565b9050600581111561202c57604051635318beb960e01b8152600481018290526024016102fc565b60006120378461297d565b905060006120458383613082565b9050601c81111561206c57604051635318beb960e01b8152600481018290526024016102fc565b60008060005b8381101561212d57600061209a6120898a8461298f565b60c58111156114c0576114c0613115565b11156120e4578481106120d9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612125565b8481101561211e576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101612072565b5083821461215157604051635318beb960e01b8152600481018390526024016102fc565b84811461069757604051635318beb960e01b8152600481018290526024016102fc565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106121ad576121ad612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d869061221c90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000611404565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061227b8484611029565b905060006122898585611046565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106122c3576122c3612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c657300000000000000000000000000000000000000000000000000006030820152815180820390930183528101905261111b9061232f90612ec6565b828686867e60030220202000000000000000000000000000000000000000000000000000611afc565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061238e5761238e612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f757263654964730000000000000000000000000000000000000000006030820152815180820390930183528101905261244a906123fa90612ec6565b8260008560405160200161241591151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ff565b505050565b600061245b8585611914565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be85858560405161249193929190613390565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146124cd5750610ea0565b60006124d8866126c4565b905060005b81518110156125b75760008282815181106124fa576124fa612eea565b602002602001015190506125266004826affffffffffffffffffffff191661278c90919063ffffffff16565b156125a4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612571908b908b908b908b906004016133cd565b600060405180830381600087803b15801561258b57600080fd5b505af115801561259f573d6000803e3d6000fd5b505050505b50806125af816132bd565b9150506124dd565b506125cb828565ffffffffffff16856129b0565b60005b81518110156106975760008282815181106125eb576125eb612eea565b602002602001015190506126176008826affffffffffffffffffffff191661278c90919063ffffffff16565b15612695576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612662908b908b908b908b906004016133cd565b600060405180830381600087803b15801561267c57600080fd5b505af1158015612690573d6000803e3d6000fd5b505050505b50806126a0816132bd565b9150506125ce565b6040805160208101849052908101829052600090606001611929565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106126fe576126fe612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906127759061276d90612ec6565b8360006129c0565b9050610d9261278782600084516129fa565b612a8a565b60008160ff168261279d8560581c90565b1660ff1614905092915050565b821561282457602083106127d4576020830484019350602083816127d0576127d06132d7565b0692505b82156128245760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612815575050610ea0565b50600194909401939182019190035b5b602081106128465781518455600190930192602090910190601f1901612825565b8015610ea0576000600019600883021c198554845182169119161785555050505050565b6000600860018061287d60026020613211565b6128879190613211565b6128919190613211565b61289b9190613224565b8260ff911c1692915050565b600082826040516020016128bc92919061328f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161291292919061328f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008600161288760026020613211565b6000601b8290036008028360ff911c1660c581111561102257611022613115565b61244a83836020840184516127aa565b6060610d926129d08585856128fd565b6129f3846129de8888612a9b565b9060ff166028026038011c64ffffffffff1690565b6000612aae565b6000818311158015612a0d575083518211155b612a49578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102fc93929190613406565b60208401612a578482613082565b90506000612a658585613211565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006110228360156000612ad1565b6000611022612aaa84846128a7565b5490565b60405160208101601f19603f85840101166040528382526119a585858584612b4c565b60606000612adf8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281612b0557612b056132d7565b04905060405193506020840160208202810160405281855260005b82811015612b40578451871c825293870193602090910190600101612b20565b50505050509392505050565b8115612bbe5760208210612b7657602082048401935060208281612b7257612b726132d7565b0691505b8115612bbe5760208290036000600019600883021c1990508554600885021b811984511682821617845250818511612baf575050610ea0565b50600194909401939283900392015b5b60208310612be05783548152600190930192601f1990920191602001612bbf565b8215610ea0576000600019600885021c198251865482169119161782525050505050565b600060208284031215612c1657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461102257600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612c7f57612c7f612c46565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612cae57612cae612c46565b604052919050565b600067ffffffffffffffff821115612cd057612cd0612c46565b50601f01601f191660200190565b600060208284031215612cf057600080fd5b813567ffffffffffffffff811115612d0757600080fd5b8201601f81018413612d1857600080fd5b8035612d2b612d2682612cb6565b612c85565b818152856020838501011115612d4057600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b83811015612d79578181015183820152602001612d61565b50506000910152565b6000612d90612d2684612cb6565b9050828152838383011115612da457600080fd5b611022836020830184612d5e565b600082601f830112612dc357600080fd5b61102283835160208501612d82565b60008060408385031215612de557600080fd5b825171ffffffffffffffffffffffffffffffffffff1981168114612e0857600080fd5b602084015190925067ffffffffffffffff80821115612e2657600080fd5b9084019060608287031215612e3a57600080fd5b612e42612c5c565b825160ff81168114612e5357600080fd5b8152602083015182811115612e6757600080fd5b612e7388828601612db2565b602083015250604083015182811115612e8b57600080fd5b612e9788828601612db2565b6040830152508093505050509250929050565b60008251612ebc818460208701612d5e565b9190910192915050565b80516020808301519190811015611e455760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b60008151808452612f18816020860160208601612d5e565b601f01601f19169290920160200192915050565b6020815260006110226020830184612f00565b828152604060208201526000610d926040830184612f00565b600060208284031215612f6a57600080fd5b815167ffffffffffffffff811115612f8157600080fd5b8201601f81018413612f9257600080fd5b610d9284825160208401612d82565b600060208284031215612fb357600080fd5b81516001600160a01b038116811461102257600080fd5b8381528260208201526060604082015260006114316060830184612f00565b600081518084526020808501945080840160005b8381101561301957815187529582019590820190600101612ffd565b509495945050505050565b84815260806020820152600061303d6080830186612fe9565b60ff949094166040830152506060015292915050565b60006020828403121561306557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ce576101ce61306c565b600083516130a7818460208801612d5e565b8351908301906130bb818360208801612d5e565b01949350505050565b85815260a0602082015260006130dd60a0830187612fe9565b82810360408401526130ef8187612f00565b905084606084015282810360808401526131098185612f00565b98975050505050505050565b634e487b7160e01b600052602160045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613173578284038952613161848351612f00565b98850198935090840190600101613149565b5091979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006131ab60c083018561312b565b82810360a08401526131bd818561312b565b9998505050505050505050565b85815260a0602082015260006131e360a0830187612fe9565b60ff8616604084015282810360608401526131fe8186612f00565b9150508260808301529695505050505050565b818103818111156101ce576101ce61306c565b80820281158282048414176101ce576101ce61306c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006114316060830184612f00565b602081526000611022602083018461312b565b82815260006020808301845182860160005b82811015613173578151845292840192908401906001016132a1565b600060001982036132d0576132d061306c565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6080815260006133006080830187612fe9565b82810360208401526133128187612f00565b9050846040840152828103606084015261332c8185612f00565b979650505050505050565b86815260c06020820152600061335060c0830188612fe9565b82810360408401526133628188612f00565b9050856060840152828103608084015261337c8186612f00565b9150508260a0830152979650505050505050565b6060815260006133a36060830186612fe9565b65ffffffffffff8516602084015282810360408401526133c38185612f00565b9695505050505050565b8481526080602082015260006133e66080830186612fe9565b65ffffffffffff85166040840152828103606084015261332c8185612f00565b6060815260006134196060830186612f00565b6020830194909452506040015291905056fea164736f6c6343000815000a","sourceMap":"1229:2128:228:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:220:158;;;;;;:::i;:::-;;:::i;:::-;;;516:14:307;;509:22;491:41;;479:2;464:18;754:220:158;;;;;;;;1245:113:163;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:307;;;689:74;;677:2;662:18;1245:113:163;543:226:307;1780:1474:228;;;;;;:::i;:::-;;:::i;:::-;;1412:87;;;1483:11;2632:98:307;;2620:2;2605:18;1412:87:228;2486:250:307;1599:110:163;;;-1:-1:-1;;3585:14:163;3581:23;3568:37;2887:25:307;;2875:2;2860:18;1599:110:163;2741:177:307;3258:97:228;;;;;;:::i;:::-;;:::i;1925:95:163:-;;;:::i;754:220:158:-;878:4;897:34;;;360:110:153;897:34:158;;:72;;-1:-1:-1;935:34:158;;;188::152;935::158;897:72;890:79;754:220;-1:-1:-1;;754:220:158:o;1245:113:163:-;1288:14;1317:36;:34;:36::i;:::-;1310:43;;1245:113;:::o;1780:1474:228:-;1961:1;-1:-1:-1;;;;;1899:64:228;:50;1920:11;1943:4;1933:15;;;;;;1899:20;:50::i;:::-;-1:-1:-1;;;;;1899:64:228;;1895:117;;1980:25;;;;;;;;;;;;;;1895:117;2039:17;2058:33;2106:4;2095:46;;;;;;;;;;;;:::i;:::-;2038:103;;-1:-1:-1;2038:103:228;-1:-1:-1;2214:29:228;-1:-1:-1;;2214:29:228;;;2210:96;;2260:39;;;;;-1:-1:-1;;5095:79:307;;2260:39:228;;;5077:98:307;5050:18;;2260:39:228;;;;;;;;2210:96;2340:22;:20;:22::i;:::-;2413:16;2443:8;:6;:8::i;:::-;2491:75;;-1:-1:-1;;;;;5398:55:307;;;2491:75:228;;;5380:74:307;-1:-1:-1;;5490:79:307;;5470:18;;;5463:107;5398:55;;-1:-1:-1;2458:19:228;:32;;;;5353:18:307;;2491:75:228;;;-1:-1:-1;;2491:75:228;;;;;;;;;;;;;;;;;;;;2458:109;;;2491:75;2458:109;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2605:56;2623:27;2640:9;2623:16;:27::i;:::-;2652:8;2605:17;:56::i;:::-;2713:24;2740:25;2755:9;2740:14;:25::i;:::-;2713:52;;2771:14;2788:34;2801:5;2808:13;2788:12;:34::i;:::-;2771:51;-1:-1:-1;1559:18:164;1582:33;336:5:122;1582:33:164;;;;1551:65;-1:-1:-1;;;;;2962:23:228;;;1551:65:164;2999:12:228;:10;:12::i;:::-;2962:50;;;;;;;;;;;;;6079:25:307;;;;-1:-1:-1;;;;;6140:55:307;6120:18;;;6113:83;6052:18;;2962:50:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;850:76:234;;;-1:-1:-1;;;850:76:234;;;6390:92:307;883:16:234;6498:11:307;;;6491:100;901:24:234;6607:12:307;;;6600:101;3071:46:228;;-1:-1:-1;6717:12:307;;-1:-1:-1;850:76:234;;;;;;;;;;;;842:85;;;:::i;:::-;3071:21:228;:46::i;:::-;3066:115;;850:76:234;;;-1:-1:-1;;;850:76:234;;;6390:92:307;883:16:234;6498:11:307;;;6491:100;901:24:234;6607:12:307;;;6600:101;3127:47:228;;6717:12:307;850:76:234;;;;;;;;;;;;842:85;;;:::i;:::-;3127:22:228;:47::i;:::-;850:76:234;;;-1:-1:-1;;;850:76:234;;;6390:92:307;883:16:234;6498:11:307;;;6491:100;901:24:234;6607:12:307;;;6600:101;3186:63:228;;6717:12:307;850:76:234;;;;;;;;;;;;842:85;;;:::i;:::-;3229:11:228;3242:6;3186:17;:63::i;:::-;1823:1431;;;;;;1780:1474;:::o;3258:97::-;3318:32;;;;;;;;;;;;;;1925:95:163;1964:7;1986:29;:27;:29::i;2779:381::-;3063:34;3067:14;3063:34;3050:48;3046:2;3042:57;;3110:45;;-1:-1:-1;3145:10:163;3110:45;2779:381;:::o;4272:357:176:-;4409:16;;;4423:1;4409:16;;;;;;;;4351:21;;;;4409:16;4423:1;4409:16;;;;;;;;;;-1:-1:-1;4409:16:176;4380:45;;4454:10;4446:19;;;4431:9;4441:1;4431:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;4486:13;4471:9;4481:1;4471:12;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;1164:79;;;-1:-1:-1;;;1164:79:176;;;6390:92:307;1197:16:176;6498:11:307;;;6491:100;1215:27:176;6607:12:307;;;6600:101;1164:79:176;;;;;;;;;;6717:12:307;;1164:79:176;;-1:-1:-1;;4522:64:176;;1156:88;;;:::i;:::-;4559:9;4570:1;1361:66;4522:26;:64::i;:::-;4600:23;;;4272:357;-1:-1:-1;;;;;4272:357:176:o;1503:273:228:-;1654:12;;;1680:1;1654:12;;;;;;;;;1603:65;;-1:-1:-1;;;387:17:277;1644:23:228;;;;;;1603:20;:65::i;:::-;-1:-1:-1;;;;;1603:79:228;;1599:173;;1731:32;;-1:-1:-1;;;1731:32:228;;;7420:92:307;7528:12;;1731:32:228;;;-1:-1:-1;;1731:32:228;;;;;;;;;;1699:66;;;;;;;;:::i;1599:173::-;1503:273::o;1047:181:240:-;1106:10;1129:96;-1:-1:-1;;;1192:9:240;1209:13;1129:25;:96::i;15107:443:237:-;15189:24;15216:29;15229:6;:15;;;18192:26;;;11784:3:307;11780:16;;;;11798:66;11776:89;18192:26:237;;;11764:102:307;18192:26:237;;;;;;;;;11882:11:307;;;;18192:26:237;;;18104:119;15216:29;15189:56;;15252:29;15284:41;15298:6;:11;;;15311:6;:13;;;15284;:41::i;:::-;15252:73;;15331:25;15359:41;15373:6;:11;;;15386:6;:13;;;15359;:41::i;:::-;15436:16;;;15407:26;15436:16;;;;;;;;15331:69;;-1:-1:-1;15459:86:237;15481:8;15436:16;15502:11;15515:15;15331:69;15459:21;:86::i;:::-;15183:367;;;;15107:443;;:::o;1230:184:240:-;1287:10;1310:101;1346:15;1374:9;1391:17;1310:25;:101::i;799:322:278:-;659:64:277;;;676:15;659:64;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;704:18:277;6607:12:307;;;6600:101;869:14:278;;-1:-1:-1;;;;;914:10:278;;;;;6717:12:307;659:64:277;;;;;;;;;;;;651:73;;;:::i;:::-;941:60:278;;;;;2887:25:307;;;2860:18;;941:60:278;;;-1:-1:-1;;941:60:278;;;;;;;;;;;;;;;;;;;;914:88;;941:60;914:88;;;;;;;;;941:60;914:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;914:88:278;;;;;;;;;;;;:::i;:::-;898:123;;;;;;;;;;;;:::i;:::-;889:132;-1:-1:-1;;;;;;1025:33:278;;;1079:18:199;606:36:164;2848:46;;2847:74;522:67:277;;;539:15;522:67;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;567:21:277;6607:12:307;;;6600:101;6717:12;522:67:277;;;;;;;;;;;;514:76;;;:::i;:::-;1105:12:278;;;1115:1;1105:12;;;;;;;;;1025:93;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:322;;;;:::o;3213:315:133:-;3326:16;;;3340:1;3326:16;;;;;;;;;3278:11;;;;3326:16;;;;;;;;;;;;-1:-1:-1;3326:16:133;3297:45;;3381:10;3348:9;3358:1;3348:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:22:133;6607:12:307;;;6600:101;1047:74:133;;;;;;;;;;6717:12:307;;1047:74:133;;-1:-1:-1;;3415:64:133;;1039:83;;;:::i;:::-;3452:9;3463:1;1234:66;3415:26;:64::i;:::-;3399:80;;3493:29;3514:5;3501:20;;7878:5;7792:97;3493:29;3485:38;3213:315;-1:-1:-1;;;;3213:315:133:o;2827:174:238:-;2881:115;2907:8;1251:66;2931:14;:12;:14::i;:::-;2947:16;:14;:16::i;:::-;2965:13;:11;:13::i;:::-;2980:15;:13;:15::i;:::-;2881:25;:115::i;:::-;2827:174;:::o;5555:301::-;5679:16;;;5693:1;5679:16;;;;;;;;;5650:26;;5679:16;;;;;;;;;;;-1:-1:-1;5679:16:238;5650:45;;5734:11;5701:9;5711:1;5701:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5753:98;5780:8;5790:9;5801:1;5822:12;5804:32;;;;;;;10018:2:307;10014:15;;;;10031:66;10010:88;9998:101;;10124:2;10115:12;;9869:264;5804:32:238;;;;-1:-1:-1;;5804:32:238;;;;;;;;;1251:66;5753:26;:98::i;:::-;5644:212;5555:301;;;:::o;1766:227:130:-;996:42;1855:22;1816:7;;-1:-1:-1;;;;;1855:22:130;;1883:106;;1931:10;1924:17;;;1766:227;:::o;1883:106::-;1969:13;1766:227;-1:-1:-1;1766:227:130:o;17702:457::-;17859:7;17874:21;17898:17;:15;:17::i;:::-;17874:41;-1:-1:-1;17950:4:130;-1:-1:-1;;;;;17925:30:130;;;17921:234;;17972:68;17997:7;18006:8;18016:10;18028:11;17972:24;:68::i;:::-;17965:75;;;;;17921:234;18068:80;;;;;-1:-1:-1;;;;;18068:36:130;;;;;:80;;18105:7;;18114:8;;18124:10;;18136:11;;18068:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1008:257:164:-;1095:10;1224:26;399:6;336:5:122;1224:26:164;:::i;:::-;1206:13;;;:45;;336:5:122;1170:31:164;;;;;1151:15;;;:51;:101;;-1:-1:-1;1008:257:164;;;;;;:::o;18414:334:237:-;18696:18;;18716:20;;18514:29;;2377:5:121;;;785;2408:39;;;;2390:58;2489:23;2474:39;;;;2456:58;18674:63:237;2236:344:121;18913:168:237;19001:12;19052:4;19067:6;19028:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19021:55;;18913:168;;;;:::o;6388:479:130:-;6574:21;6598:17;:15;:17::i;:::-;6574:41;-1:-1:-1;6650:4:130;-1:-1:-1;;;;;6625:30:130;;;6621:242;;6665:79;6685:7;6694:8;6704:10;6716:14;6732:11;6665:19;:79::i;:::-;6621:242;;;6765:91;;;;;-1:-1:-1;;;;;6765:31:130;;;;;:91;;6797:7;;6806:8;;6816:10;;6828:14;;6844:11;;6765:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6568:299;6388:479;;;;;:::o;1670:200:238:-;1764:19;;;1781:1;1764:19;;;;;;;;;1717:6;;;;1764:19;;;;;;;;;;;;-1:-1:-1;1764:19:238;1731:52;;1805:18;1789:10;1800:1;1789:13;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1837:28:238;1854:10;1837:16;:28::i;:::-;1830:35;;;1670:200;:::o;1987:208::-;2085:19;;;2102:1;2085:19;;;;;;;;;2036:6;;;;2085:19;;;;;;;;;;;;-1:-1:-1;2085:19:238;2050:54;;2128:18;2110:12;2123:1;2110:15;;;;;;;;:::i;2329:142::-;2418:15;;;2431:1;2418:15;;;;;;;;;2375:24;;2418:15;;;;;;;;;;;;;;;;;;;;2407:26;;2439:27;;;;;;;;;;;;;;;;;:8;2448:1;2439:11;;;;;;;;:::i;:::-;;;;;;:27;;;;2329:142;:::o;2611:151::-;2706:15;;;2719:1;2706:15;;;;;;;;;2659:26;;2706:15;;;;;;;;;;;;;;;;;;;;2693:28;;2727:30;;;;;;;;;;;;;;;;;:10;2738:1;2727:13;;;;;;;;:::i;5574:520:130:-;5777:21;5801:17;:15;:17::i;:::-;5777:41;-1:-1:-1;5853:4:130;-1:-1:-1;;;;;5828:30:130;;;5824:266;;5868:91;5892:7;5901:11;5914:9;5925:11;5938:8;5948:10;5868:23;:91::i;:::-;5824:266;;;5980:103;;;;;-1:-1:-1;;;;;5980:35:130;;;;;:103;;6016:7;;6025:11;;6038:9;;6049:11;;6062:8;;6072:10;;5980:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:323;5574:520;;;;;;:::o;10690:455::-;10862:21;10886:17;:15;:17::i;:::-;10862:41;-1:-1:-1;10938:4:130;-1:-1:-1;;;;;10913:30:130;;;10909:232;;10953:74;10978:7;10987:8;10997:10;11009:4;11015:11;10953:24;:74::i;10909:232::-;11048:86;;;;;-1:-1:-1;;;;;11048:36:130;;;;;:86;;11085:7;;11094:8;;11104:10;;11116:4;;11122:11;;11048:86;;;:::i;35212:541:126:-;35369:7;35506:242;35550:59;35591:7;35600:8;35550:40;:59::i;:::-;35627:31;;;;4044:19:109;:27;537:1:136;4043:44:109;4009:79;;;3996:93;35676:63:126;35715:11;35728:10;35676:38;:63::i;:::-;35506:17;:242::i;:::-;35493:255;35212:541;-1:-1:-1;;;;;35212:541:126:o;11576:285::-;11762:94;11772:7;11781:8;11791:10;11803:14;11819:11;11832:23;11847:7;11832:14;:23::i;:::-;11762:9;:94::i;:::-;11576:285;;;;;:::o;1247:2059:123:-;1315:6;647:2:136;1333:7:123;:14;:33;1329:85;;;1399:7;:14;1375:39;;-1:-1:-1;;;1375:39:123;;;;;;2887:25:307;;2875:2;2860:18;;2741:177;1329:85:123;1420:14;;;;1621:956;1645:7;:14;1641:1;:18;1621:956;;;1671:24;1698:32;:7;1706:1;1698:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1671:59;;1743:16;1763:1;1743:21;1739:404;;1928:15;;;;;1739:404;;;1972:17;;1968:175;;2096:38;;;;;;;;;;;;;;1968:175;2269:16;2254:31;;;;537:1:136;2531::123;2527;437:2:136;2509:19:123;:23;2508:40;2492:7;2500:1;2492:10;;;;;;;;:::i;:::-;;;;;;;2484:19;;;;;;;;:::i;:::-;:65;;2474:75;;;;;-1:-1:-1;2559:3:123;;1621:956;;;;902:1:136;2621:13:123;:34;2617:85;;;2664:38;;-1:-1:-1;;;2664:38:123;;;;;2887:25:307;;;2860:18;;2664:38:123;2741:177:307;2617:85:123;2802:14;;:30;;;537:1:136;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3090:41:123;;;3080:51;;;;;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3147:47:123;;;3137:57;;;;;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3210:49:123;;;;3200:59;;;;;1247:2059;-1:-1:-1;;;;1247:2059:123:o;7479:1764:126:-;-1:-1:-1;;;7739:7:126;:35;;;;;;:83;;-1:-1:-1;7799:23:126;7778:7;:44;;;;7739:83;7735:209;;;-1:-1:-1;;;7894:7:126;7927;7910:25;;;;;;16110:19:307;;16154:2;16145:12;;15949:214;7910:25:126;;;;-1:-1:-1;;7910:25:126;;;;;;;;;;7839:98;;;;;;;;;;:::i;7735:209::-;7990:43;:11;8025:5;7990:20;:43::i;:::-;8074:40;:9;8107:4;8074:18;:40::i;:::-;8120:43;:11;8155:5;8120:20;:43::i;:::-;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8251:8:126;:15;:40;8247:148;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8372:15:126;;8308:80;;;;;;;;16812:25:307;;;;16853:18;;;16846:34;16785:18;;8308:80:126;16638:248:307;8247:148:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8445:10:126;:17;:44;8441:158;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8574:17:126;;8506:86;;;;;;;;16812:25:307;;;;16853:18;;;16846:34;16785:18;;8506:86:126;16638:248:307;8441:158:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8656:50:126;8652:171;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8723:93:126;;;;;;;;16812:25:307;;;;16853:18;;;16846:34;16785:18;;8723:93:126;16638:248:307;8652:171:126;8885:31;8908:7;8885:22;:31::i;:::-;8881:140;;;8971:7;9004;8987:25;;;;;;16110:19:307;;16154:2;16145:12;;15949:214;8987:25:126;;;;-1:-1:-1;;8987:25:126;;;;;;;;;;8933:81;;;;;;;;;:::i;8881:140::-;9062:103;9074:7;9083:11;9096:9;9107:11;9131:8;9120:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;9153:10;9142:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:11;:103::i;:::-;9201:37;9224:7;9233:4;9201:22;:37::i;22277:355::-;22449:178;22483:7;22508:8;22538:63;22577:11;22590:10;22538:38;:63::i;:::-;22616:4;22449:16;:178::i;49619:191::-;49721:7;49785;49794:8;49768:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;49768:35:126;;;;;;;;;49758:46;;49768:35;49758:46;;;;41226:22;49751:53;;49619:191;-1:-1:-1;;;49619:191:126:o;50636:242::-;50732:7;;;50771:84;50791:10;50787:14;;:1;:14;50771:84;;;50816:32;3996:93:109;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;50816:32:126;;:::i;:::-;;-1:-1:-1;50803:3:126;;;;:::i;:::-;;;;50771:84;;;-1:-1:-1;50867:6:126;50636:242;-1:-1:-1;;;50636:242:126:o;8680:790:125:-;8778:14;8814:2;8804:6;:12;8800:112;;8873:2;8864:6;:11;8846:29;;;;8895:2;8885:12;;;;;;:::i;:::-;;;;8800:112;-1:-1:-1;9092:21:125;;9088:1;9076:14;;9072:42;9240:2;:11;;;9322:22;;;9318:148;;;9447:1;9431:14;9427:22;9421:29;9417:1;9402:13;9398:21;9394:57;9386:6;9383:69;9373:79;;8794:676;8680:790;;;;;:::o;4858:651:126:-;1147:69:135;;;-1:-1:-1;;;1147:69:135;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1198:17:135;6607:12:307;;;6600:101;4925:11:126;;6717:12:307;1147:69:135;;;;;;;;;;;;1139:78;;;:::i;:::-;5179:7:126;5161:62;5157:112;;-1:-1:-1;1324:66:135;;4858:651:126;-1:-1:-1;4858:651:126:o;5157:112::-;1147:69:135;;;-1:-1:-1;;;1147:69:135;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1198:17:135;6607:12:307;;;6600:101;5313:183:126;;5359:83;;6717:12:307;1147:69:135;;;;;;;;;;;;1139:78;;;:::i;:::-;5433:7:126;5359:40;:83::i;:::-;5462:2;5484:1;5313:17;:183::i;12721:3002::-;12994:7;12978:75;13003:8;13013:10;13025:14;13041:11;12978:75;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;13118:7:126;:35;;;13163:7;13114:62;13314:22;13339:24;13355:7;13339:15;:24::i;:::-;13314:49;;13374:9;13369:340;13389:5;:12;13385:1;:16;13369:340;;;13416:9;13438:5;13444:1;13438:8;;;;;;;;:::i;:::-;;;;;;;13416:31;;13459:33;343:6:138;13459:4:126;:14;;;;;:33;;;;:::i;:::-;13455:248;;;13504:190;;;;;3392:35:110;;;;;13504:47:126;;:190;;13563:7;;13582:8;;13602:10;;13624:14;;13650:11;;13673;;13504:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13455:248;-1:-1:-1;13403:3:126;;;;:::i;:::-;;;;13369:340;;;;13772:26;13801:59;13842:7;13851:8;13801:40;:59::i;:::-;13772:88;-1:-1:-1;13866:21:126;826:4:120;816:15;;13866:54:126;;13926:149;13964:18;13998:1;14022:13;14051:10;:17;13926:13;:149::i;:::-;14175:1;14142:30;:11;:28;:30::i;:::-;:34;14138:1174;;;14261:33;14297:66;14345:7;14354:8;14297:47;:66::i;:::-;579:28:125;;;14261:102:126;-1:-1:-1;826:4:120;816:15;;14537:47:126;;14693:27;14728:25;14766:7;14761:545;14779:30;:11;:28;:30::i;:::-;14775:1;:34;;;14761:545;;;14845:63;14887:7;14896:8;14906:1;14845:41;:63::i;:::-;14823:85;-1:-1:-1;14938:25:126;:14;14961:1;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;14938:25:126;14918:45;;14973:170;15015:19;15054:1;15082:13;15115:17;14973:13;:170::i;:::-;15153:34;15170:17;15153:34;;:::i;:::-;;-1:-1:-1;15284:3:126;;14761:545;;;;14178:1134;;;14138:1174;15386:9;15381:338;15401:5;:12;15397:1;:16;15381:338;;;15428:9;15450:5;15456:1;15450:8;;;;;;;;:::i;:::-;;;;;;;15428:31;;15471:32;437:6:138;15471:4:126;:14;;;;;:32;;;;:::i;:::-;15467:246;;;15515:189;;;;;3392:35:110;;;;;15515:46:126;;:189;;15573:7;;15592:8;;15612:10;;15634:14;;15660:11;;15683;;15515:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15467:246;-1:-1:-1;15415:3:126;;;;:::i;:::-;;;;15381:338;;3195:520:107;3261:7;3274:13;3296:10;3290:17;;;;;;;;:::i;:::-;3274:33;;;;3324:2;3316:5;:10;3312:401;;;3568:2;3560:10;3574:1;3559:16;;;-1:-1:-1;;3195:520:107:o;3312:401::-;3610:18;3596:10;:32;;;;;;;;:::i;:::-;;3592:121;;-1:-1:-1;3643:2:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;-1:-1:-1;3707:1:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;3270:445;3195:520;;;:::o;6418:1197:109:-;6540:10;6539:11;:36;;;;-1:-1:-1;6022:45:109;;6554:21;6535:95;;;6584:46;;;;;6628:1;6584:46;;;2887:25:307;2860:18;;6584:46:109;2741:177:307;6535:95:109;6698:25;6726:30;:11;:28;:30::i;:::-;6698:58;;902:1:136;6766:17:109;:38;6762:113;;;6813:62;;;;;;;;2887:25:307;;;2860:18;;6813:62:109;2741:177:307;6762:113:109;6882:24;6909:29;:11;:27;:29::i;:::-;6882:56;-1:-1:-1;7013:23:109;7039:36;7058:17;6882:56;7039:36;:::i;:::-;7013:62;;647:2:136;7085:15:109;:34;7081:107;;;7128:60;;;;;;;;2887:25:307;;;2860:18;;7128:60:109;2741:177:307;7081:107:109;7236:9;7231:380;7251:16;7247:1;:20;7231:380;;;3996:93;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;7279:24;7340:21;;;7336:230;;7380:50;;;;;;;;;;;;;;7336:230;334:2:136;7449:16:109;:28;7445:121;;;7496:61;;;;;;;;;;;;;;7445:121;-1:-1:-1;7593:3:109;;7231:380;;5689:1683:123;5796:10;5795:11;:31;;;;-1:-1:-1;6022:45:109;;5810:16:123;5791:80;;;5835:36;;-1:-1:-1;;;5835:36:123;;5869:1;5835:36;;;2887:25:307;2860:18;;5835:36:123;2741:177:307;5791:80:123;5934:25;5962;:6;:23;:25::i;:::-;5934:53;;902:1:136;5997:17:123;:38;5993:103;;;6044:52;;-1:-1:-1;;;6044:52:123;;;;;2887:25:307;;;2860:18;;6044:52:123;2741:177:307;5993:103:123;6103:24;6130;:6;:22;:24::i;:::-;6103:51;-1:-1:-1;6224:23:123;6250:36;6269:17;6103:51;6250:36;:::i;:::-;6224:62;;647:2:136;6296:15:123;:34;6292:97;;;6339:50;;-1:-1:-1;;;6339:50:123;;;;;2887:25:307;;;2860:18;;6339:50:123;2741:177:307;6292:97:123;6448:25;6479:26;6516:9;6511:551;6531:15;6527:1;:19;6511:551;;;6604:1;6562:39;:17;:6;6577:1;6562:14;:17::i;:::-;:37;;;;;;;;:::i;:39::-;:43;6558:459;;;6666:16;6661:1;:21;6657:82;;6691:48;;;;;;;;;;;;;;6657:82;6771:19;;;;;6558:459;;;6873:16;6869:1;:20;6865:81;;;6898:48;;;;;;;;;;;;;;6865:81;6978:20;;;;;6558:459;7044:3;;6511:551;;;;7135:16;7114:17;:37;7110:102;;7160:52;;-1:-1:-1;;;7160:52:123;;;;;2887:25:307;;;2860:18;;7160:52:123;2741:177:307;7110:102:123;7288:17;7266:18;:39;7262:105;;7314:53;;-1:-1:-1;;;7314:53:123;;;;;2887:25:307;;;2860:18;;7314:53:123;2741:177:307;3569:314:133;3683:16;;;3697:1;3683:16;;;;;;;;;3635:11;;;;3683:16;;;;;;;;;;;;-1:-1:-1;3683:16:133;3654:45;;3738:10;3705:9;3715:1;3705:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:22:133;6607:12:307;;;6600:101;1047:74:133;;;;;;;;;;6717:12:307;;1047:74:133;;-1:-1:-1;;3772:62:133;;1039:83;;;:::i;:::-;3807:9;3818:1;1234:66;3772:24;:62::i;20632:676:135:-;25186:53;;;;;;22232:19:307;;;22267:12;;;22260:28;;;25159:12:135;22304::307;;;22297:28;;;25186:53:135;;;;;;;;;;22341:12:307;;;;25186:53:135;;;20923:29;20955:55;20969:18;20989:20;20955:13;:55::i;:::-;20923:87;;21016:25;21044:55;21058:18;21078:20;21044:13;:55::i;:::-;21135:16;;;21149:1;21135:16;;;;;;;;;21016:83;;-1:-1:-1;21106:26:135;;21135:16;;;;;;;;;;;;-1:-1:-1;21135:16:135;21106:45;;21190:7;21157:9;21167:1;21157:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1147:69;;;-1:-1:-1;;;1147:69:135;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1198:17:135;6607:12:307;;;6600:101;1147:69:135;;;;;;;;;;6717:12:307;;1147:69:135;;21205:98;;1139:78;;;:::i;:::-;21235:9;21246:11;21259:15;21276:12;1324:66;21205:19;:98::i;4933:268:133:-;5033:16;;;5047:1;5033:16;;;;;;;;;5004:26;;5033:16;;;;;;;;;;;-1:-1:-1;5033:16:133;5004:45;;5088:10;5055:9;5065:1;5055:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:22:133;6607:12:307;;;6600:101;1047:74:133;;;;;;;;;;6717:12:307;;1047:74:133;;5106:90;;1039:83;;;:::i;:::-;5141:9;5152:1;5173:6;5155:26;;;;;;20480:14:307;20473:22;20468:3;20464:32;20452:45;;20522:1;20513:11;;20329:201;5155:26:133;;;;-1:-1:-1;;5155:26:133;;;;;;;;;1234:66;5106:24;:90::i;:::-;4998:203;4933:268;;:::o;16359:1506:126:-;16480:16;16499:59;16540:7;16549:8;16499:40;:59::i;:::-;16480:78;;16660:7;16616:100;16679:8;16696:5;16709:4;16616:100;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;16781:7:126;:35;;;16777:62;;16826:7;;;16777:62;16984:22;17009:24;17025:7;17009:15;:24::i;:::-;16984:49;;17044:9;17039:328;17059:5;:12;17055:1;:16;17039:328;;;17086:9;17108:5;17114:1;17108:8;;;;;;;;:::i;:::-;;;;;;;17086:31;;17129:41;548:6:138;17129:4:126;:14;;;;;:41;;;;:::i;:::-;17125:236;;;17182:170;;;;;3392:35:110;;;;;17182:54:126;;:170;;17258:7;;17287:8;;17314:5;;17337:4;;17182:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17125:236;-1:-1:-1;17073:3:126;;;;:::i;:::-;;;;17039:328;;;;17416:70;17448:8;17466:5;17416:70;;17479:4;17416:13;:70::i;:::-;17540:9;17535:326;17555:5;:12;17551:1;:16;17535:326;;;17582:9;17604:5;17610:1;17604:8;;;;;;;;:::i;:::-;;;;;;;17582:31;;17625:40;657:6:138;17625:4:126;:14;;;;;:40;;;;:::i;:::-;17621:234;;;17677:169;;;;;3392:35:110;;;;;17677:53:126;;:169;;17752:7;;17781:8;;17808:5;;17831:4;;17677:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17621:234;-1:-1:-1;17569:3:126;;;;:::i;:::-;;;;17535:326;;50062:282;50307:30;;;;;;21863:19:307;;;21898:12;;;21891:28;;;50150:7:126;;21935:12:307;;50307:30:126;21674:279:307;4372:342:134;4488:16;;;4502:1;4488:16;;;;;;;;;4429:22;;4459:26;;4488:16;;;;;;;;;;;;-1:-1:-1;4488:16:134;4459:45;;4543:7;4510:9;4520:1;4510:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1047:73;;;-1:-1:-1;;;1047:73:134;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:21:134;6607:12:307;;;6600:101;1047:73:134;;;;;;;;;;6717:12:307;;1047:73:134;;-1:-1:-1;;4579:49:134;;1039:82;;;:::i;:::-;4615:9;4626:1;4579:25;:49::i;:::-;4558:70;;4642:66;:44;4663:5;4670:1;4673:5;:12;4642:20;:44::i;:::-;:64;:66::i;2891:136:110:-;2961:4;3013:9;2980:42;;2999:9;2981:15;2991:4;3790:26;;;3660:162;2981:15;:27;2980:42;;;2973:49;;2891:136;;;;:::o;1373:2326:125:-;1486:10;;1482:1491;;1639:2;1629:6;:12;1625:122;;1702:2;1693:6;:11;1675:29;;;;1726:2;1716:12;;;;;;:::i;:::-;;;;1625:122;1837:10;;1833:1134;;2045:2;:11;;;1919:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;2077:31:125;;2277:1;2269:6;2265:14;2313:4;2302:9;2298:20;2290:28;;2368:13;2362:20;2351:9;2347:36;2329:54;;2616:4;2612:9;2595:14;2589:21;2585:37;2516:4;2504:10;2500:21;2443:193;2415:14;2395:253;;2707:13;2697:6;:23;2693:36;;2722:7;;;;2693:36;-1:-1:-1;2870:1:125;2852:19;;;;;2883:30;;;;2925:23;;1833:1134;3003:253;3020:2;3010:6;:12;3003:253;;3115:20;;3092:44;;3189:1;3171:19;;;;3217:2;3200:19;;;;-1:-1:-1;;3229:12:125;3003:253;;;3324:10;;3320:375;;3344:12;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;3626:21:125;;3542:20;;3538:31;;3649:9;;3622:37;3487:184;3443:238;;-1:-1:-1;1373:2326:125;;;;:::o;5098:173:109:-;5172:7;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;5208:11:109;5187:79;5200:65;;5187:79;;5098:173;-1:-1:-1;;5098:173:109:o;52184:230:126:-;52305:7;52389;52398:8;52372:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;52372:35:126;;;;;;;;;52362:46;;52372:35;52362:46;;;;41389:40;52335:73;;52184:230;-1:-1:-1;;;52184:230:126:o;51555:274::-;51699:7;51804;51813:8;51787:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;51777:46;;;;;;51756:17;51749:25;;51729:45;;;41298:34;51729:45;:94;51721:103;;51714:110;;51555:274;;;;;:::o;4700:171:109:-;4773:7;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;3948:206:123:-;4018:10;4108:19;:27;;;4139:1;4107:33;4086:6;4061:82;4078:63;;4061:82;;;;;;;;;:::i;850:162:125:-;939:68;945:14;961:6;826:4:120;816:15;;995:4:125;:11;939:5;:68::i;36221:522:126:-;36357:12;36481:257;36520:79;36562:7;36571:8;36581:17;36520:41;:79::i;:::-;36617:93;36692:17;36617:66;36665:7;36674:8;36617:47;:66::i;:::-;:74;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;36617:93:126;36728:1;36481:12;:257::i;2022:570:124:-;2113:5;2211:3;2202:5;:12;;:34;;;;;2225:4;:11;2218:3;:18;;2202:34;2196:85;;2264:4;2270:5;2277:3;2246:35;;;;;;;;;;;;;:::i;2196:85::-;2349:4;2339:15;;2396:17;2408:5;2339:15;2396:17;:::i;:::-;;-1:-1:-1;2419:12:124;2434:11;2440:5;2434:3;:11;:::i;:::-;643:17;2570:15;2562:3;2550:15;;;;2549:37;;;;;;-1:-1:-1;;;;;2022:570:124:o;40037:220:140:-;40103:24;40135:30;40168:32;40186:6;40194:2;40198:1;40168:17;:32::i;52752:301:126:-;52873:13;52965:82;52996:48;53026:7;53035:8;52996:29;:48::i;:::-;4572:21:125;;4466:137;4903:665;5315:4;5309:11;5356:4;5344:17;;-1:-1:-1;;5234:14:125;5403:26;;;5234:14;5230:28;5375:4;5368:63;5475:6;5467;5460:22;5493:51;5498:14;5514:6;5522;5530:13;5493:4;:51::i;2631:1127:142:-;2751:22;2781:21;2805;:11;2946:3:124;2924:25;;2850:104;2805:21:142;2781:45;-1:-1:-1;643:17:124;3187:38;;2832:20:142;2994:11;3187:38:124;2994:11:142;2979:26;;;;:::i;:::-;;2965:40;;3114:4;3108:11;3099:20;;3157:4;3150:5;3146:16;3217:2;3204:11;3200:20;3186:12;3182:39;3176:4;3169:53;3265:11;3258:5;3251:26;3308:1;3285:463;3324:11;3321:1;3318:18;3285:463;;;3718:20;;3697:42;;3676:64;;3590:31;;;;3503:4;3485:23;;;;3411:1;3404:9;3285:463;;;3289:28;;3066:688;;;2631:1127;;;;;:::o;5933:2258:125:-;6050:10;;6046:1421;;6203:2;6193:6;:12;6189:122;;6266:2;6257:6;:11;6239:29;;;;6290:2;6280:12;;;;;;:::i;:::-;;;;6189:122;6401:10;;6397:1064;;6609:2;:11;;;6483:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;6641:38:125;;6863:14;6857:21;6853:1;6845:6;6841:14;6837:42;7110:4;7106:9;7090:13;7084:20;7080:36;7011:4;6999:10;6995:21;6938:192;6911:13;6891:251;;7201:13;7191:6;:23;7187:36;;7216:7;;;;7187:36;-1:-1:-1;7364:1:125;7346:19;;;;;7419:23;;;;;7377:30;6397:1064;7496:253;7513:2;7503:6;:12;7496:253;;7607:21;;7585:44;;7682:1;7664:19;;;;-1:-1:-1;;7722:12:125;;;;7710:2;7693:19;7496:253;;;7817:10;;7813:374;;7837:12;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;8119:20:125;;8034:21;;8030:32;;8141:9;;8115:36;7979:184;7936:237;;-1:-1:-1;5933:2258:125;;;;:::o;14:332:307:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:184;-1:-1:-1;;;823:1:307;816:88;923:4;920:1;913:15;947:4;944:1;937:15;963:253;1035:2;1029:9;1077:4;1065:17;;1112:18;1097:34;;1133:22;;;1094:62;1091:88;;;1159:18;;:::i;:::-;1195:2;1188:22;963:253;:::o;1221:334::-;1292:2;1286:9;1348:2;1338:13;;-1:-1:-1;;1334:86:307;1322:99;;1451:18;1436:34;;1472:22;;;1433:62;1430:88;;;1498:18;;:::i;:::-;1534:2;1527:22;1221:334;;-1:-1:-1;1221:334:307:o;1560:245::-;1608:4;1641:18;1633:6;1630:30;1627:56;;;1663:18;;:::i;:::-;-1:-1:-1;1720:2:307;1708:15;-1:-1:-1;;1704:88:307;1794:4;1700:99;;1560:245::o;1810:671::-;1878:6;1931:2;1919:9;1910:7;1906:23;1902:32;1899:52;;;1947:1;1944;1937:12;1899:52;1987:9;1974:23;2020:18;2012:6;2009:30;2006:50;;;2052:1;2049;2042:12;2006:50;2075:22;;2128:4;2120:13;;2116:27;-1:-1:-1;2106:55:307;;2157:1;2154;2147:12;2106:55;2193:2;2180:16;2218:48;2234:31;2262:2;2234:31;:::i;:::-;2218:48;:::i;:::-;2289:2;2282:5;2275:17;2329:7;2324:2;2319;2315;2311:11;2307:20;2304:33;2301:53;;;2350:1;2347;2340:12;2301:53;2405:2;2400;2396;2392:11;2387:2;2380:5;2376:14;2363:45;2449:1;2428:14;;;2444:2;2424:23;2417:34;;;;2432:5;1810:671;-1:-1:-1;;;;1810:671:307:o;2923:250::-;3008:1;3018:113;3032:6;3029:1;3026:13;3018:113;;;3108:11;;;3102:18;3089:11;;;3082:39;3054:2;3047:10;3018:113;;;-1:-1:-1;;3165:1:307;3147:16;;3140:27;2923:250::o;3178:321::-;3254:5;3283:52;3299:35;3327:6;3299:35;:::i;3283:52::-;3274:61;;3358:6;3351:5;3344:21;3398:3;3389:6;3384:3;3380:16;3377:25;3374:45;;;3415:1;3412;3405:12;3374:45;3428:65;3486:6;3479:4;3472:5;3468:16;3463:3;3428:65;:::i;3504:237::-;3558:5;3611:3;3604:4;3596:6;3592:17;3588:27;3578:55;;3629:1;3626;3619:12;3578:55;3651:84;3731:3;3722:6;3716:13;3709:4;3701:6;3697:17;3651:84;:::i;3746:1180::-;3862:6;3870;3923:2;3911:9;3902:7;3898:23;3894:32;3891:52;;;3939:1;3936;3929:12;3891:52;3971:9;3965:16;-1:-1:-1;;4014:5:307;4010:78;4003:5;4000:89;3990:117;;4103:1;4100;4093:12;3990:117;4175:2;4160:18;;4154:25;4126:5;;-1:-1:-1;4198:18:307;4228:14;;;4225:34;;;4255:1;4252;4245:12;4225:34;4278:22;;;;4334:4;4316:16;;;4312:27;4309:47;;;4352:1;4349;4342:12;4309:47;4380:22;;:::i;:::-;4432:2;4426:9;4479:4;4470:7;4466:18;4457:7;4454:31;4444:59;;4499:1;4496;4489:12;4444:59;4512:24;;4575:2;4567:11;;4561:18;4591:16;;;4588:36;;;4620:1;4617;4610:12;4588:36;4658:56;4706:7;4695:8;4691:2;4687:17;4658:56;:::i;:::-;4653:2;4644:7;4640:16;4633:82;;4754:2;4750;4746:11;4740:18;4783:2;4773:8;4770:16;4767:36;;;4799:1;4796;4789:12;4767:36;4837:56;4885:7;4874:8;4870:2;4866:17;4837:56;:::i;:::-;4832:2;4823:7;4819:16;4812:82;;4913:7;4903:17;;;;;3746:1180;;;;;:::o;5581:287::-;5710:3;5748:6;5742:13;5764:66;5823:6;5818:3;5811:4;5803:6;5799:17;5764:66;:::i;:::-;5846:16;;;;;5581:287;-1:-1:-1;;5581:287:307:o;6740:357::-;6858:12;;6905:4;6894:16;;;6888:23;;6858:12;6923:16;;6920:171;;;-1:-1:-1;;6997:4:307;6993:17;;;;6990:1;6986:25;6982:98;6971:110;;6740:357;-1:-1:-1;6740:357:307:o;7102:184::-;-1:-1:-1;;;7151:1:307;7144:88;7251:4;7248:1;7241:15;7275:4;7272:1;7265:15;7551:330;7593:3;7631:5;7625:12;7658:6;7653:3;7646:19;7674:76;7743:6;7736:4;7731:3;7727:14;7720:4;7713:5;7709:16;7674:76;:::i;:::-;7795:2;7783:15;-1:-1:-1;;7779:88:307;7770:98;;;;7870:4;7766:109;;7551:330;-1:-1:-1;;7551:330:307:o;7886:220::-;8035:2;8024:9;8017:21;7998:4;8055:45;8096:2;8085:9;8081:18;8073:6;8055:45;:::i;8325:321::-;8532:6;8521:9;8514:25;8575:2;8570;8559:9;8555:18;8548:30;8495:4;8595:45;8636:2;8625:9;8621:18;8613:6;8595:45;:::i;8651:458::-;8730:6;8783:2;8771:9;8762:7;8758:23;8754:32;8751:52;;;8799:1;8796;8789:12;8751:52;8832:9;8826:16;8865:18;8857:6;8854:30;8851:50;;;8897:1;8894;8887:12;8851:50;8920:22;;8973:4;8965:13;;8961:27;-1:-1:-1;8951:55:307;;9002:1;8999;8992:12;8951:55;9025:78;9095:7;9090:2;9084:9;9079:2;9075;9071:11;9025:78;:::i;9114:321::-;9192:6;9245:2;9233:9;9224:7;9220:23;9216:32;9213:52;;;9261:1;9258;9251:12;9213:52;9293:9;9287:16;-1:-1:-1;;;;;9336:5:307;9332:54;9325:5;9322:65;9312:93;;9401:1;9398;9391:12;9440:424;9707:6;9696:9;9689:25;9750:6;9745:2;9734:9;9730:18;9723:34;9793:2;9788;9777:9;9773:18;9766:30;9670:4;9813:45;9854:2;9843:9;9839:18;9831:6;9813:45;:::i;10138:435::-;10191:3;10229:5;10223:12;10256:6;10251:3;10244:19;10282:4;10311:2;10306:3;10302:12;10295:19;;10348:2;10341:5;10337:14;10369:1;10379:169;10393:6;10390:1;10387:13;10379:169;;;10454:13;;10442:26;;10488:12;;;;10523:15;;;;10415:1;10408:9;10379:169;;;-1:-1:-1;10564:3:307;;10138:435;-1:-1:-1;;;;;10138:435:307:o;10578:548::-;10902:6;10891:9;10884:25;10945:3;10940:2;10929:9;10925:18;10918:31;10865:4;10966:57;11018:3;11007:9;11003:19;10995:6;10966:57;:::i;:::-;11071:4;11059:17;;;;11054:2;11039:18;;11032:45;-1:-1:-1;11108:2:307;11093:18;11086:34;10958:65;10578:548;-1:-1:-1;;10578:548:307:o;11131:184::-;11201:6;11254:2;11242:9;11233:7;11229:23;11225:32;11222:52;;;11270:1;11267;11260:12;11222:52;-1:-1:-1;11293:16:307;;11131:184;-1:-1:-1;11131:184:307:o;11320:::-;-1:-1:-1;;;11369:1:307;11362:88;11469:4;11466:1;11459:15;11493:4;11490:1;11483:15;11509:125;11574:9;;;11595:10;;;11592:36;;;11608:18;;:::i;11904:492::-;12079:3;12117:6;12111:13;12133:66;12192:6;12187:3;12180:4;12172:6;12168:17;12133:66;:::i;:::-;12262:13;;12221:16;;;;12284:70;12262:13;12221:16;12331:4;12319:17;;12284:70;:::i;:::-;12370:20;;11904:492;-1:-1:-1;;;;11904:492:307:o;12401:795::-;12795:6;12784:9;12777:25;12838:3;12833:2;12822:9;12818:18;12811:31;12758:4;12865:57;12917:3;12906:9;12902:19;12894:6;12865:57;:::i;:::-;12970:9;12962:6;12958:22;12953:2;12942:9;12938:18;12931:50;13004:33;13030:6;13022;13004:33;:::i;:::-;12990:47;;13073:6;13068:2;13057:9;13053:18;13046:34;13129:9;13121:6;13117:22;13111:3;13100:9;13096:19;13089:51;13157:33;13183:6;13175;13157:33;:::i;:::-;13149:41;12401:795;-1:-1:-1;;;;;;;;12401:795:307:o;13201:184::-;-1:-1:-1;;;13250:1:307;13243:88;13350:4;13347:1;13340:15;13374:4;13371:1;13364:15;13390:616;13442:3;13480:5;13474:12;13507:6;13502:3;13495:19;13533:4;13574:2;13569:3;13565:12;13599:11;13626;13619:18;;13676:6;13673:1;13669:14;13662:5;13658:26;13646:38;;13718:2;13711:5;13707:14;13739:1;13749:231;13763:6;13760:1;13757:13;13749:231;;;13834:5;13828:4;13824:16;13819:3;13812:29;13862:38;13895:4;13886:6;13880:13;13862:38;:::i;:::-;13958:12;;;;13854:46;-1:-1:-1;13923:15:307;;;;13785:1;13778:9;13749:231;;;-1:-1:-1;13996:4:307;;13390:616;-1:-1:-1;;;;;;;13390:616:307:o;14011:912::-;14541:6;14530:9;14523:25;14584:6;14579:2;14568:9;14564:18;14557:34;14627:6;14622:2;14611:9;14607:18;14600:34;14670:6;14665:2;14654:9;14650:18;14643:34;14714:3;14708;14697:9;14693:19;14686:32;14504:4;14741:56;14792:3;14781:9;14777:19;14769:6;14741:56;:::i;:::-;14846:9;14838:6;14834:22;14828:3;14817:9;14813:19;14806:51;14874:43;14910:6;14902;14874:43;:::i;:::-;14866:51;14011:912;-1:-1:-1;;;;;;;;;14011:912:307:o;14928:710::-;15298:6;15287:9;15280:25;15341:3;15336:2;15325:9;15321:18;15314:31;15261:4;15368:57;15420:3;15409:9;15405:19;15397:6;15368:57;:::i;:::-;15473:4;15465:6;15461:17;15456:2;15445:9;15441:18;15434:45;15527:9;15519:6;15515:22;15510:2;15499:9;15495:18;15488:50;15555:33;15581:6;15573;15555:33;:::i;:::-;15547:41;;;15625:6;15619:3;15608:9;15604:19;15597:35;14928:710;;;;;;;;:::o;15643:128::-;15710:9;;;15731:11;;;15728:37;;;15745:18;;:::i;15776:168::-;15849:9;;;15880;;15897:15;;;15891:22;;15877:37;15867:71;;15918:18;;:::i;16168:465::-;16415:66;16407:6;16403:79;16392:9;16385:98;16519:6;16514:2;16503:9;16499:18;16492:34;16562:2;16557;16546:9;16542:18;16535:30;16366:4;16582:45;16623:2;16612:9;16608:18;16600:6;16582:45;:::i;17219:280::-;17418:2;17407:9;17400:21;17381:4;17438:55;17489:2;17478:9;17474:18;17466:6;17438:55;:::i;17504:640::-;17755:6;17750:3;17743:19;17725:3;17781:2;17814;17809:3;17805:12;17846:6;17840:13;17911:2;17903:6;17899:15;17932:1;17942:175;17956:6;17953:1;17950:13;17942:175;;;18019:13;;18005:28;;18055:14;;;;18092:15;;;;17978:1;17971:9;17942:175;;18149:195;18188:3;-1:-1:-1;;18212:5:307;18209:77;18206:103;;18289:18;;:::i;:::-;-1:-1:-1;18336:1:307;18325:13;;18149:195::o;18349:184::-;-1:-1:-1;;;18398:1:307;18391:88;18498:4;18495:1;18488:15;18522:4;18519:1;18512:15;18538:691;18872:3;18861:9;18854:22;18835:4;18899:57;18951:3;18940:9;18936:19;18928:6;18899:57;:::i;:::-;19004:9;18996:6;18992:22;18987:2;18976:9;18972:18;18965:50;19038:33;19064:6;19056;19038:33;:::i;:::-;19024:47;;19107:6;19102:2;19091:9;19087:18;19080:34;19162:9;19154:6;19150:22;19145:2;19134:9;19130:18;19123:50;19190:33;19216:6;19208;19190:33;:::i;:::-;19182:41;18538:691;-1:-1:-1;;;;;;;18538:691:307:o;19234:900::-;19689:6;19678:9;19671:25;19732:3;19727:2;19716:9;19712:18;19705:31;19652:4;19759:57;19811:3;19800:9;19796:19;19788:6;19759:57;:::i;:::-;19864:9;19856:6;19852:22;19847:2;19836:9;19832:18;19825:50;19898:33;19924:6;19916;19898:33;:::i;:::-;19884:47;;19967:6;19962:2;19951:9;19947:18;19940:34;20023:9;20015:6;20011:22;20005:3;19994:9;19990:19;19983:51;20051:33;20077:6;20069;20051:33;:::i;:::-;20043:41;;;20121:6;20115:3;20104:9;20100:19;20093:35;19234:900;;;;;;;;;:::o;20535:512::-;20786:2;20775:9;20768:21;20749:4;20812:56;20864:2;20853:9;20849:18;20841:6;20812:56;:::i;:::-;20916:14;20908:6;20904:27;20899:2;20888:9;20884:18;20877:55;20980:9;20972:6;20968:22;20963:2;20952:9;20948:18;20941:50;21008:33;21034:6;21026;21008:33;:::i;:::-;21000:41;20535:512;-1:-1:-1;;;;;;20535:512:307:o;21052:617::-;21363:6;21352:9;21345:25;21406:3;21401:2;21390:9;21386:18;21379:31;21326:4;21433:57;21485:3;21474:9;21470:19;21462:6;21433:57;:::i;:::-;21538:14;21530:6;21526:27;21521:2;21510:9;21506:18;21499:55;21602:9;21594:6;21590:22;21585:2;21574:9;21570:18;21563:50;21630:33;21656:6;21648;21630:33;:::i;22364:360::-;22567:2;22556:9;22549:21;22530:4;22587:45;22628:2;22617:9;22613:18;22605:6;22587:45;:::i;:::-;22663:2;22648:18;;22641:34;;;;-1:-1:-1;22706:2:307;22691:18;22684:34;22579:53;22364:360;-1:-1:-1;22364:360:307:o","linkReferences":{},"immutableReferences":{"121639":[{"start":842,"length":32}]}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getName()":"17d7de7c","install(bytes)":"13861fb5","installRoot(bytes)":"7c5b0335","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"ERC20Module_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"dependency\",\"type\":\"string\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"PackedCounter\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"name\":\"install\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"installRoot\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"Module_RootInstallNotSupported()\":[{\"details\":\"Errors to represent non-support of specific installation types.\"}],\"SchemaLib_InvalidLength(uint256)\":[{\"details\":\"Error raised when the provided schema has an invalid length.\"}],\"SchemaLib_StaticTypeAfterDynamicType()\":[{\"details\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getName()\":{\"details\":\"Provides a way to identify the module by a unique name.\",\"returns\":{\"_0\":\"The name of the module as a bytes16.\"}},\"install(bytes)\":{\"details\":\"This function is invoked by the World contract during `installModule` process. The module expects to be called via the World contract and thus installs itself on the `msg.sender`. Logic might differ from `installRoot`, for example, this might accept namespace parameters.\",\"params\":{\"args\":\"Arguments that may be needed during the installation process.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Overrides the functionality from IERC165 and WorldContextConsumer to check for supported interfaces.\",\"params\":{\"interfaceId\":\"The bytes4 identifier for the interface.\"},\"returns\":{\"_0\":\"true if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"getName()\":{\"notice\":\"Return the name of the module.\"},\"install(bytes)\":{\"notice\":\"Installs the module.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if the given interfaceId is supported by this contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/erc20-puppet/ERC20Module.sol\":\"ERC20Module\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4\",\"dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba\",\"dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18\",\"dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e\",\"dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534\",\"dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5\",\"dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751\",\"dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95\",\"dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a\",\"dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"node_modules/@latticexyz/world/src/DelegationControl.sol\":{\"keccak256\":\"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c\",\"dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9\"]},\"node_modules/@latticexyz/world/src/IDelegationControl.sol\":{\"keccak256\":\"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d\",\"dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883\",\"dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510\",\"dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c\",\"dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs\"]},\"node_modules/@latticexyz/world/src/Module.sol\":{\"keccak256\":\"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5\",\"dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd\",\"dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518\",\"dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb\",\"dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255\",\"dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5\",\"dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8\",\"dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8\",\"dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol\":{\"keccak256\":\"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b\",\"dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0\",\"dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad\",\"dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh\"]},\"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol\":{\"keccak256\":\"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198\",\"dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac\",\"dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93\",\"dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae\",\"dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1\",\"dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218\",\"dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc\"]},\"node_modules/@latticexyz/world/src/modules/core/types.sol\":{\"keccak256\":\"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3\",\"dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2\",\"dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9\"]},\"src/modules/erc20-puppet/ERC20Module.sol\":{\"keccak256\":\"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6\",\"dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR\"]},\"src/modules/erc20-puppet/ERC20System.sol\":{\"keccak256\":\"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85\",\"dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot\"]},\"src/modules/erc20-puppet/IERC20.sol\":{\"keccak256\":\"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9\",\"dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS\"]},\"src/modules/erc20-puppet/IERC20Errors.sol\":{\"keccak256\":\"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b\",\"dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6\"]},\"src/modules/erc20-puppet/IERC20Events.sol\":{\"keccak256\":\"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f\",\"dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5\"]},\"src/modules/erc20-puppet/IERC20Mintable.sol\":{\"keccak256\":\"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205\",\"dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E\"]},\"src/modules/erc20-puppet/constants.sol\":{\"keccak256\":\"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b\",\"dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk\"]},\"src/modules/erc20-puppet/tables/Allowances.sol\":{\"keccak256\":\"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768\",\"dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo\"]},\"src/modules/erc20-puppet/tables/ERC20Metadata.sol\":{\"keccak256\":\"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee\",\"dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51\"]},\"src/modules/erc20-puppet/tables/ERC20Registry.sol\":{\"keccak256\":\"0x64ed658a41d86dc88c1eea8a18a0ed69dd940cd9b6ccf9375052a023ea1b62c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30f4d7586232cbca686229cf9247d9dd3ed23638624c8d51455f628e13beeeb2\",\"dweb:/ipfs/QmbozJbJZPosWFwNmPBQyVSiQLZRWCZLvg5nNSHBPNdUHy\"]},\"src/modules/erc20-puppet/tables/TotalSupply.sol\":{\"keccak256\":\"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b\",\"dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9\"]},\"src/modules/erc20-puppet/utils.sol\":{\"keccak256\":\"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e\",\"dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN\"]},\"src/modules/puppet/Puppet.sol\":{\"keccak256\":\"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b\",\"dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD\"]},\"src/modules/puppet/PuppetDelegationControl.sol\":{\"keccak256\":\"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b\",\"dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW\"]},\"src/modules/puppet/PuppetFactorySystem.sol\":{\"keccak256\":\"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a\",\"dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t\"]},\"src/modules/puppet/PuppetMaster.sol\":{\"keccak256\":\"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f\",\"dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9\"]},\"src/modules/puppet/constants.sol\":{\"keccak256\":\"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449\",\"dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur\"]},\"src/modules/puppet/createPuppet.sol\":{\"keccak256\":\"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c\",\"dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3\"]},\"src/modules/puppet/tables/PuppetRegistry.sol\":{\"keccak256\":\"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436\",\"dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE\"]},\"src/modules/puppet/utils.sol\":{\"keccak256\":\"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c\",\"dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf\"]},\"src/modules/tokens/tables/Balances.sol\":{\"keccak256\":\"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d\",\"dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe\"]},\"src/utils/AccessControlLib.sol\":{\"keccak256\":\"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0\",\"dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"ERC20Module_InvalidNamespace"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"FieldLayoutLib_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthIsZero"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"string","name":"dependency","type":"string"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"SchemaLib_InvalidLength"},{"inputs":[],"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"PackedCounter","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getName","outputs":[{"internalType":"bytes16","name":"","type":"bytes16"}]},{"inputs":[{"internalType":"bytes","name":"args","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"install"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"installRoot"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getName()":{"details":"Provides a way to identify the module by a unique name.","returns":{"_0":"The name of the module as a bytes16."}},"install(bytes)":{"details":"This function is invoked by the World contract during `installModule` process. The module expects to be called via the World contract and thus installs itself on the `msg.sender`. Logic might differ from `installRoot`, for example, this might accept namespace parameters.","params":{"args":"Arguments that may be needed during the installation process."}},"supportsInterface(bytes4)":{"details":"Overrides the functionality from IERC165 and WorldContextConsumer to check for supported interfaces.","params":{"interfaceId":"The bytes4 identifier for the interface."},"returns":{"_0":"true if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"getName()":{"notice":"Return the name of the module."},"install(bytes)":{"notice":"Installs the module."},"supportsInterface(bytes4)":{"notice":"Checks if the given interfaceId is supported by this contract."}},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/modules/erc20-puppet/ERC20Module.sol":"ERC20Module"},"libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb","urls":["bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4","dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558","urls":["bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4","dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0","urls":["bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba","dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd","urls":["bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18","dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf","urls":["bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2","dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827","urls":["bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0","dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreData.sol":{"keccak256":"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5","urls":["bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a","dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212","urls":["bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc","dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f","urls":["bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d","dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e","urls":["bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e","dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37","urls":["bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac","dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f","urls":["bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115","dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b","urls":["bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1","dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7","urls":["bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5","dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv"],"license":"MIT"},"node_modules/@latticexyz/store/src/PackedCounter.sol":{"keccak256":"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb","urls":["bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0","dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed","urls":["bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d","dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401","urls":["bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3","dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32","urls":["bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c","dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5","urls":["bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648","dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180","urls":["bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534","dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416","urls":["bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7","dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3","urls":["bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6","dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e","urls":["bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5","dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789","urls":["bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751","dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14","urls":["bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95","dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb","urls":["bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a","dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076","urls":["bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793","dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC"],"license":"MIT"},"node_modules/@latticexyz/store/src/leftMask.sol":{"keccak256":"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f","urls":["bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401","dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5","urls":["bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81","dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2","urls":["bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84","dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04","urls":["bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1","dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d","urls":["bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49","dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b","urls":["bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256","dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c","urls":["bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491","dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk"],"license":"MIT"},"node_modules/@latticexyz/world/src/DelegationControl.sol":{"keccak256":"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9","urls":["bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c","dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9"],"license":"MIT"},"node_modules/@latticexyz/world/src/IDelegationControl.sol":{"keccak256":"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553","urls":["bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d","dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47","urls":["bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5","dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581","urls":["bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883","dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db","urls":["bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510","dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500","urls":["bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d","dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7","urls":["bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83","dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb","urls":["bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c","dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs"],"license":"MIT"},"node_modules/@latticexyz/world/src/Module.sol":{"keccak256":"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719","urls":["bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5","dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd","urls":["bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd","dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a","urls":["bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518","dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417","urls":["bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb","dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593","urls":["bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255","dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55","urls":["bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5","dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc","urls":["bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8","dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97","urls":["bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8","dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol":{"keccak256":"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57","urls":["bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b","dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263","urls":["bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0","dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62","urls":["bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad","dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol":{"keccak256":"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c","urls":["bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198","dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d","urls":["bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac","dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60","urls":["bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93","dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d","urls":["bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae","dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9","urls":["bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1","dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588","urls":["bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218","dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/types.sol":{"keccak256":"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a","urls":["bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3","dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55","urls":["bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df","dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746","urls":["bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2","dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9"],"license":"MIT"},"src/modules/erc20-puppet/ERC20Module.sol":{"keccak256":"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453","urls":["bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6","dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR"],"license":"MIT"},"src/modules/erc20-puppet/ERC20System.sol":{"keccak256":"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154","urls":["bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85","dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot"],"license":"MIT"},"src/modules/erc20-puppet/IERC20.sol":{"keccak256":"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a","urls":["bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9","dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Errors.sol":{"keccak256":"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3","urls":["bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b","dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Events.sol":{"keccak256":"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d","urls":["bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f","dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Mintable.sol":{"keccak256":"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f","urls":["bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205","dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E"],"license":"MIT"},"src/modules/erc20-puppet/constants.sol":{"keccak256":"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889","urls":["bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b","dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk"],"license":"MIT"},"src/modules/erc20-puppet/tables/Allowances.sol":{"keccak256":"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74","urls":["bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768","dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Metadata.sol":{"keccak256":"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253","urls":["bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee","dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Registry.sol":{"keccak256":"0x64ed658a41d86dc88c1eea8a18a0ed69dd940cd9b6ccf9375052a023ea1b62c6","urls":["bzz-raw://30f4d7586232cbca686229cf9247d9dd3ed23638624c8d51455f628e13beeeb2","dweb:/ipfs/QmbozJbJZPosWFwNmPBQyVSiQLZRWCZLvg5nNSHBPNdUHy"],"license":"MIT"},"src/modules/erc20-puppet/tables/TotalSupply.sol":{"keccak256":"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385","urls":["bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b","dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9"],"license":"MIT"},"src/modules/erc20-puppet/utils.sol":{"keccak256":"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4","urls":["bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e","dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN"],"license":"MIT"},"src/modules/puppet/Puppet.sol":{"keccak256":"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab","urls":["bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b","dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD"],"license":"MIT"},"src/modules/puppet/PuppetDelegationControl.sol":{"keccak256":"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0","urls":["bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b","dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW"],"license":"MIT"},"src/modules/puppet/PuppetFactorySystem.sol":{"keccak256":"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85","urls":["bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a","dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t"],"license":"MIT"},"src/modules/puppet/PuppetMaster.sol":{"keccak256":"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5","urls":["bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f","dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9"],"license":"MIT"},"src/modules/puppet/constants.sol":{"keccak256":"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207","urls":["bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449","dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur"],"license":"MIT"},"src/modules/puppet/createPuppet.sol":{"keccak256":"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e","urls":["bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c","dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3"],"license":"MIT"},"src/modules/puppet/tables/PuppetRegistry.sol":{"keccak256":"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4","urls":["bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436","dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE"],"license":"MIT"},"src/modules/puppet/utils.sol":{"keccak256":"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66","urls":["bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c","dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf"],"license":"MIT"},"src/modules/tokens/tables/Balances.sol":{"keccak256":"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283","urls":["bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d","dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe"],"license":"MIT"},"src/utils/AccessControlLib.sol":{"keccak256":"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88","urls":["bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0","dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/modules/erc20-puppet/ERC20Module.sol","id":121869,"exportedSymbols":{"Allowances":[123839],"Balances":[156591],"ERC20Metadata":[125908],"ERC20MetadataData":[123885],"ERC20Module":[121820],"ERC20ModuleRegistrationLibrary":[121868],"ERC20Registry":[126666],"ERC20System":[122506],"ERC20_REGISTRY_TABLE_ID":[122741],"IBaseWorld":[96356],"InstalledModules":[98969],"MODULE_NAME":[122691],"MODULE_NAMESPACE":[122694],"MODULE_NAMESPACE_ID":[122708],"Module":[94903],"PUPPET_MODULE_NAME":[150956],"Puppet":[150648],"ResourceId":[82352],"ResourceIds":[87847],"WorldResourceIdLib":[96164],"_allowancesTableId":[127309],"_balancesTableId":[127325],"_erc20SystemId":[127373],"_metadataTableId":[127357],"createPuppet":[151083]},"nodeType":"SourceUnit","src":"32:3834:228","nodes":[{"id":121585,"nodeType":"PragmaDirective","src":"32:25:228","nodes":[],"literals":["solidity",">=","0.8",".21"]},{"id":121587,"nodeType":"ImportDirective","src":"59:83:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol","file":"@latticexyz/store/src/codegen/tables/ResourceIds.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":87858,"symbolAliases":[{"foreign":{"id":121586,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"68:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121589,"nodeType":"ImportDirective","src":"143:66:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"@latticexyz/store/src/ResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":82424,"symbolAliases":[{"foreign":{"id":121588,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82352,"src":"152:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121591,"nodeType":"ImportDirective","src":"210:58:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/Module.sol","file":"@latticexyz/world/src/Module.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":94904,"symbolAliases":[{"foreign":{"id":121590,"name":"Module","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94903,"src":"219:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121593,"nodeType":"ImportDirective","src":"269:79:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/WorldResourceId.sol","file":"@latticexyz/world/src/WorldResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96286,"symbolAliases":[{"foreign":{"id":121592,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"278:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121595,"nodeType":"ImportDirective","src":"349:85:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","file":"@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96357,"symbolAliases":[{"foreign":{"id":121594,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"358:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121597,"nodeType":"ImportDirective","src":"435:93:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol","file":"@latticexyz/world/src/codegen/tables/InstalledModules.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":98970,"symbolAliases":[{"foreign":{"id":121596,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"444:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121599,"nodeType":"ImportDirective","src":"530:46:228","nodes":[],"absolutePath":"src/modules/puppet/Puppet.sol","file":"../puppet/Puppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":150649,"symbolAliases":[{"foreign":{"id":121598,"name":"Puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150648,"src":"539:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121601,"nodeType":"ImportDirective","src":"577:58:228","nodes":[],"absolutePath":"src/modules/puppet/createPuppet.sol","file":"../puppet/createPuppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151084,"symbolAliases":[{"foreign":{"id":121600,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"586:12:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121603,"nodeType":"ImportDirective","src":"636:76:228","nodes":[],"absolutePath":"src/modules/puppet/constants.sol","file":"../puppet/constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151017,"symbolAliases":[{"foreign":{"id":121602,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"645:11:228","typeDescriptions":{}},"local":"PUPPET_MODULE_NAME","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121605,"nodeType":"ImportDirective","src":"713:57:228","nodes":[],"absolutePath":"src/modules/tokens/tables/Balances.sol","file":"../tokens/tables/Balances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":156592,"symbolAliases":[{"foreign":{"id":121604,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"722:8:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121610,"nodeType":"ImportDirective","src":"772:110:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122742,"symbolAliases":[{"foreign":{"id":121606,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"781:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121607,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"794:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121608,"name":"MODULE_NAMESPACE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122708,"src":"812:19:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121609,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"833:23:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121615,"nodeType":"ImportDirective","src":"883:101:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/utils.sol","file":"./utils.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":127374,"symbolAliases":[{"foreign":{"id":121611,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"892:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121612,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"912:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121613,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"930:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121614,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"948:14:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121617,"nodeType":"ImportDirective","src":"985:48:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/ERC20System.sol","file":"./ERC20System.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122507,"symbolAliases":[{"foreign":{"id":121616,"name":"ERC20System","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122506,"src":"994:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121619,"nodeType":"ImportDirective","src":"1035:59:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Registry.sol","file":"./tables/ERC20Registry.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":126667,"symbolAliases":[{"foreign":{"id":121618,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"1044:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121621,"nodeType":"ImportDirective","src":"1095:53:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/Allowances.sol","file":"./tables/Allowances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":123840,"symbolAliases":[{"foreign":{"id":121620,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"1104:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121624,"nodeType":"ImportDirective","src":"1149:78:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Metadata.sol","file":"./tables/ERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":125909,"symbolAliases":[{"foreign":{"id":121622,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"1158:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121623,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"1173:17:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121820,"nodeType":"ContractDefinition","src":"1229:2128:228","nodes":[{"id":121630,"nodeType":"ErrorDefinition","src":"1264:54:228","nodes":[],"errorSelector":"0f31c63c","name":"ERC20Module_InvalidNamespace","nameLocation":"1270:28:228","parameters":{"id":121629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121628,"mutability":"mutable","name":"namespace","nameLocation":"1307:9:228","nodeType":"VariableDeclaration","scope":121630,"src":"1299:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121627,"name":"bytes14","nodeType":"ElementaryTypeName","src":"1299:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"1298:19:228"}},{"id":121639,"nodeType":"VariableDeclaration","src":"1322:85:228","nodes":[],"constant":false,"mutability":"immutable","name":"registrationLibrary","nameLocation":"1340:19:228","scope":121820,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121631,"name":"address","nodeType":"ElementaryTypeName","src":"1322:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1370:34:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"function () returns (contract ERC20ModuleRegistrationLibrary)"},"typeName":{"id":121635,"nodeType":"UserDefinedTypeName","pathNode":{"id":121634,"name":"ERC20ModuleRegistrationLibrary","nameLocations":["1374:30:228"],"nodeType":"IdentifierPath","referencedDeclaration":121868,"src":"1374:30:228"},"referencedDeclaration":121868,"src":"1374:30:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}},"id":121637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1370:36:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}],"id":121633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1362:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121632,"name":"address","nodeType":"ElementaryTypeName","src":"1362:7:228","typeDescriptions":{}}},"id":121638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":121648,"nodeType":"FunctionDefinition","src":"1412:87:228","nodes":[],"body":{"id":121647,"nodeType":"Block","src":"1470:29:228","nodes":[],"statements":[{"expression":{"id":121645,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1483:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"functionReturnParameters":121644,"id":121646,"nodeType":"Return","src":"1476:18:228"}]},"baseFunctions":[94638],"functionSelector":"17d7de7c","implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"1421:7:228","overrides":{"id":121641,"nodeType":"OverrideSpecifier","overrides":[],"src":"1443:8:228"},"parameters":{"id":121640,"nodeType":"ParameterList","parameters":[],"src":"1428:2:228"},"returnParameters":{"id":121644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121648,"src":"1461:7:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":121642,"name":"bytes16","nodeType":"ElementaryTypeName","src":"1461:7:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"1460:9:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":121680,"nodeType":"FunctionDefinition","src":"1503:273:228","nodes":[],"body":{"id":121679,"nodeType":"Block","src":"1549:227:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121653,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1624:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"arguments":[{"hexValue":"30","id":121657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1664:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1654:9:228","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":121655,"name":"bytes","nodeType":"ElementaryTypeName","src":"1658:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":121658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121654,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1644:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:23:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121651,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1603:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1620:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1603:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:65:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":121663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1680:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1672:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121661,"name":"address","nodeType":"ElementaryTypeName","src":"1672:7:228","typeDescriptions":{}}},"id":121664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1603:79:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121678,"nodeType":"IfStatement","src":"1599:173:228","trueBody":{"id":121677,"nodeType":"Block","src":"1684:88:228","statements":[{"errorCall":{"arguments":[{"arguments":[{"arguments":[{"id":121672,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1744:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":121670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1731:5:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":121669,"name":"bytes","nodeType":"ElementaryTypeName","src":"1731:5:228","typeDescriptions":{}}},"id":121671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1737:6:228","memberName":"concat","nodeType":"MemberAccess","src":"1731:12:228","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1731:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1724:6:228","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":121667,"name":"string","nodeType":"ElementaryTypeName","src":"1724:6:228","typeDescriptions":{}}},"id":121674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1724:40:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":121666,"name":"Module_MissingDependency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94632,"src":"1699:24:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":121675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:66:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121676,"nodeType":"RevertStatement","src":"1692:73:228"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_requireDependencies","nameLocation":"1512:20:228","parameters":{"id":121649,"nodeType":"ParameterList","parameters":[],"src":"1532:2:228"},"returnParameters":{"id":121650,"nodeType":"ParameterList","parameters":[],"src":"1549:0:228"},"scope":121820,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":121810,"nodeType":"FunctionDefinition","src":"1780:1474:228","nodes":[],"body":{"id":121809,"nodeType":"Block","src":"1823:1431:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121687,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1920:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"id":121689,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"1943:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121688,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1933:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:15:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121685,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1899:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1899:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":121694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1961:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1953:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121692,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:228","typeDescriptions":{}}},"id":121695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1953:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1899:64:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121701,"nodeType":"IfStatement","src":"1895:117:228","trueBody":{"id":121700,"nodeType":"Block","src":"1965:47:228","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121697,"name":"Module_AlreadyInstalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94628,"src":"1980:23:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121699,"nodeType":"RevertStatement","src":"1973:32:228"}]}},{"assignments":[121703,121706],"declarations":[{"constant":false,"id":121703,"mutability":"mutable","name":"namespace","nameLocation":"2047:9:228","nodeType":"VariableDeclaration","scope":121809,"src":"2039:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121702,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2039:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"},{"constant":false,"id":121706,"mutability":"mutable","name":"metadata","nameLocation":"2083:8:228","nodeType":"VariableDeclaration","scope":121809,"src":"2058:33:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData"},"typeName":{"id":121705,"nodeType":"UserDefinedTypeName","pathNode":{"id":121704,"name":"ERC20MetadataData","nameLocations":["2058:17:228"],"nodeType":"IdentifierPath","referencedDeclaration":123885,"src":"2058:17:228"},"referencedDeclaration":123885,"src":"2058:17:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_storage_ptr","typeString":"struct ERC20MetadataData"}},"visibility":"internal"}],"id":121715,"initialValue":{"arguments":[{"id":121709,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"2106:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":121711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2113:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes14_$","typeString":"type(bytes14)"},"typeName":{"id":121710,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2113:7:228","typeDescriptions":{}}},{"id":121712,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"2122:17:228","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$","typeString":"type(struct ERC20MetadataData storage pointer)"}}],"id":121713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2112:28:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}],"expression":{"id":121707,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2095:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2099:6:228","memberName":"decode","nodeType":"MemberAccess","src":"2095:10:228","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":121714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes14_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$","typeString":"tuple(bytes14,struct ERC20MetadataData memory)"}},"nodeType":"VariableDeclarationStatement","src":"2038:103:228"},{"condition":{"commonType":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"id":121718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121716,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2214:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":121717,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"2227:16:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"src":"2214:29:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121724,"nodeType":"IfStatement","src":"2210:96:228","trueBody":{"id":121723,"nodeType":"Block","src":"2245:61:228","statements":[{"errorCall":{"arguments":[{"id":121720,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2289:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121719,"name":"ERC20Module_InvalidNamespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121630,"src":"2260:28:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes14_$returns$__$","typeString":"function (bytes14) pure"}},"id":121721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2260:39:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121722,"nodeType":"RevertStatement","src":"2253:46:228"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":121725,"name":"_requireDependencies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121680,"src":"2340:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":121726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:22:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121727,"nodeType":"ExpressionStatement","src":"2340:22:228"},{"assignments":[121730],"declarations":[{"constant":false,"id":121730,"mutability":"mutable","name":"world","nameLocation":"2424:5:228","nodeType":"VariableDeclaration","scope":121809,"src":"2413:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121729,"nodeType":"UserDefinedTypeName","pathNode":{"id":121728,"name":"IBaseWorld","nameLocations":["2413:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"2413:10:228"},"referencedDeclaration":96356,"src":"2413:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"}],"id":121735,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121732,"name":"_world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95789,"src":"2443:6:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:8:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121731,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"2432:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWorld_$96356_$","typeString":"type(contract IBaseWorld)"}},"id":121734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2432:20:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"nodeType":"VariableDeclarationStatement","src":"2413:39:228"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":121741,"name":"ERC20ModuleRegistrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121868,"src":"2506:30:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"type(contract ERC20ModuleRegistrationLibrary)"}},"id":121742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2537:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":121867,"src":"2506:39:228","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"}},{"components":[{"id":121743,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2548:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121744,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2555:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"id":121745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2547:18:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"},{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}],"expression":{"id":121739,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2491:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:10:228","memberName":"encodeCall","nodeType":"MemberAccess","src":"2491:14:228","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2491:75:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":121736,"name":"registrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121639,"src":"2458:19:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":121738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2478:12:228","memberName":"delegatecall","nodeType":"MemberAccess","src":"2458:32:228","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":121747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:109:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":121748,"nodeType":"ExpressionStatement","src":"2458:109:228"},{"expression":{"arguments":[{"arguments":[{"id":121753,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2640:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121752,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"2623:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121755,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121706,"src":"2652:8:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}],"expression":{"id":121749,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"2605:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2619:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":125535,"src":"2605:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$returns$__$","typeString":"function (ResourceId,struct ERC20MetadataData memory)"}},"id":121756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2605:56:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121757,"nodeType":"ExpressionStatement","src":"2605:56:228"},{"assignments":[121760],"declarations":[{"constant":false,"id":121760,"mutability":"mutable","name":"erc20SystemId","nameLocation":"2724:13:228","nodeType":"VariableDeclaration","scope":121809,"src":"2713:24:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121759,"nodeType":"UserDefinedTypeName","pathNode":{"id":121758,"name":"ResourceId","nameLocations":["2713:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2713:10:228"},"referencedDeclaration":82352,"src":"2713:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121764,"initialValue":{"arguments":[{"id":121762,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2755:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121761,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"2740:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2740:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2713:52:228"},{"assignments":[121766],"declarations":[{"constant":false,"id":121766,"mutability":"mutable","name":"puppet","nameLocation":"2779:6:228","nodeType":"VariableDeclaration","scope":121809,"src":"2771:14:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121765,"name":"address","nodeType":"ElementaryTypeName","src":"2771:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":121771,"initialValue":{"arguments":[{"id":121768,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2801:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121769,"name":"erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121760,"src":"2808:13:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"id":121767,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"2788:12:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_address_$","typeString":"function (contract IBaseWorld,ResourceId) returns (address)"}},"id":121770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2788:34:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2771:51:228"},{"assignments":[121774],"declarations":[{"constant":false,"id":121774,"mutability":"mutable","name":"namespaceId","nameLocation":"2897:11:228","nodeType":"VariableDeclaration","scope":121809,"src":"2886:22:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121773,"nodeType":"UserDefinedTypeName","pathNode":{"id":121772,"name":"ResourceId","nameLocations":["2886:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2886:10:228"},"referencedDeclaration":82352,"src":"2886:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121779,"initialValue":{"arguments":[{"id":121777,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2946:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":121775,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"2911:18:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldResourceIdLib_$96164_$","typeString":"type(library WorldResourceIdLib)"}},"id":121776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2930:15:228","memberName":"encodeNamespace","nodeType":"MemberAccess","referencedDeclaration":96119,"src":"2911:34:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2886:70:228"},{"expression":{"arguments":[{"id":121783,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"2986:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121784,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95767,"src":"2999:10:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2999:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121780,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2962:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2968:17:228","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":180199,"src":"2962:23:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,address) external"}},"id":121786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2962:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121787,"nodeType":"ExpressionStatement","src":"2962:50:228"},{"condition":{"id":121792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3070:47:228","subExpression":{"arguments":[{"id":121790,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3093:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121788,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"3071:11:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResourceIds_$87847_$","typeString":"type(library ResourceIds)"}},"id":121789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3083:9:228","memberName":"getExists","nodeType":"MemberAccess","referencedDeclaration":87367,"src":"3071:21:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_bool_$","typeString":"function (ResourceId) view returns (bool)"}},"id":121791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121800,"nodeType":"IfStatement","src":"3066:115:228","trueBody":{"id":121799,"nodeType":"Block","src":"3119:62:228","statements":[{"expression":{"arguments":[{"id":121796,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3150:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121793,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3127:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3141:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":126090,"src":"3127:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3127:47:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121798,"nodeType":"ExpressionStatement","src":"3127:47:228"}]}},{"expression":{"arguments":[{"id":121804,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3204:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121805,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"3229:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121806,"name":"puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121766,"src":"3242:6:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121801,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3186:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":126462,"src":"3186:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,ResourceId,address)"}},"id":121807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:63:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121808,"nodeType":"ExpressionStatement","src":"3186:63:228"}]},"baseFunctions":[94650],"functionSelector":"13861fb5","implemented":true,"kind":"function","modifiers":[],"name":"install","nameLocation":"1789:7:228","parameters":{"id":121683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121682,"mutability":"mutable","name":"args","nameLocation":"1810:4:228","nodeType":"VariableDeclaration","scope":121810,"src":"1797:17:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121681,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1796:19:228"},"returnParameters":{"id":121684,"nodeType":"ParameterList","parameters":[],"src":"1823:0:228"},"scope":121820,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":121819,"nodeType":"FunctionDefinition","src":"3258:97:228","nodes":[],"body":{"id":121818,"nodeType":"Block","src":"3305:50:228","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121815,"name":"Module_RootInstallNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94624,"src":"3318:30:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3318:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121817,"nodeType":"RevertStatement","src":"3311:39:228"}]},"baseFunctions":[94644],"functionSelector":"7c5b0335","implemented":true,"kind":"function","modifiers":[],"name":"installRoot","nameLocation":"3267:11:228","parameters":{"id":121813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121819,"src":"3279:12:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121811,"name":"bytes","nodeType":"ElementaryTypeName","src":"3279:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3278:14:228"},"returnParameters":{"id":121814,"nodeType":"ParameterList","parameters":[],"src":"3305:0:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":121625,"name":"Module","nameLocations":["1253:6:228"],"nodeType":"IdentifierPath","referencedDeclaration":94903,"src":"1253:6:228"},"id":121626,"nodeType":"InheritanceSpecifier","src":"1253:6:228"}],"canonicalName":"ERC20Module","contractDependencies":[121868],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121820,94903,95807,177303,94651,177260],"name":"ERC20Module","nameLocation":"1238:11:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928,94624,94626,94628,94632,121630],"usedEvents":[83227,83240]},{"id":121868,"nodeType":"ContractDefinition","src":"3359:506:228","nodes":[{"id":121867,"nodeType":"FunctionDefinition","src":"3491:372:228","nodes":[],"body":{"id":121866,"nodeType":"Block","src":"3553:310:228","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":121833,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3625:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121832,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"3606:18:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3606:29:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121829,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"3586:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Allowances_$123839_$","typeString":"type(library Allowances)"}},"id":121831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":123021,"src":"3586:19:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3586:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121836,"nodeType":"ExpressionStatement","src":"3586:50:228"},{"expression":{"arguments":[{"arguments":[{"id":121841,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3677:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121840,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"3660:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3660:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121837,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"3642:8:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Balances_$156591_$","typeString":"type(library Balances)"}},"id":121839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3651:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":155960,"src":"3642:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121844,"nodeType":"ExpressionStatement","src":"3642:46:228"},{"expression":{"arguments":[{"arguments":[{"id":121849,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3734:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121848,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"3717:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3717:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121845,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"3694:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3708:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":124039,"src":"3694:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:51:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121852,"nodeType":"ExpressionStatement","src":"3694:51:228"},{"expression":{"arguments":[{"arguments":[{"id":121857,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3822:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121856,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"3807:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3834:15:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20System_$122506_$","typeString":"function () returns (contract ERC20System)"},"typeName":{"id":121860,"nodeType":"UserDefinedTypeName","pathNode":{"id":121859,"name":"ERC20System","nameLocations":["3838:11:228"],"nodeType":"IdentifierPath","referencedDeclaration":122506,"src":"3838:11:228"},"referencedDeclaration":122506,"src":"3838:11:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}}},"id":121862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:17:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}},{"hexValue":"74727565","id":121863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3853:4:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":121853,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121824,"src":"3786:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:14:228","memberName":"registerSystem","nodeType":"MemberAccess","referencedDeclaration":180318,"src":"3786:20:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_contract$_WorldContextConsumer_$95807_$_t_bool_$returns$__$","typeString":"function (ResourceId,contract WorldContextConsumer,bool) external"}},"id":121864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3786:72:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121865,"nodeType":"ExpressionStatement","src":"3786:72:228"}]},"documentation":{"id":121821,"nodeType":"StructuredDocumentation","src":"3403:85:228","text":" Register systems and tables for a new ERC20 token in a given namespace"},"functionSelector":"472466c2","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"3500:8:228","parameters":{"id":121827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121824,"mutability":"mutable","name":"world","nameLocation":"3520:5:228","nodeType":"VariableDeclaration","scope":121867,"src":"3509:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121823,"nodeType":"UserDefinedTypeName","pathNode":{"id":121822,"name":"IBaseWorld","nameLocations":["3509:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"3509:10:228"},"referencedDeclaration":96356,"src":"3509:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"},{"constant":false,"id":121826,"mutability":"mutable","name":"namespace","nameLocation":"3535:9:228","nodeType":"VariableDeclaration","scope":121867,"src":"3527:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121825,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3527:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3508:37:228"},"returnParameters":{"id":121828,"nodeType":"ParameterList","parameters":[],"src":"3553:0:228"},"scope":121868,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC20ModuleRegistrationLibrary","contractDependencies":[122506],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121868],"name":"ERC20ModuleRegistrationLibrary","nameLocation":"3368:30:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928],"usedEvents":[83227,83240]}],"license":"MIT"},"id":228}
1
+ {"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getName","inputs":[],"outputs":[{"name":"","type":"bytes16","internalType":"bytes16"}],"stateMutability":"pure"},{"type":"function","name":"install","inputs":[{"name":"args","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRoot","inputs":[{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"PackedCounter"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ERC20Module_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"FieldLayoutLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord","inputs":[]},{"type":"error","name":"FieldLayoutLib_StaticLengthIsZero","inputs":[]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"string","internalType":"string"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"SchemaLib_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60a0604052604051620000129062000050565b604051809103906000f0801580156200002f573d6000803e3d6000fd5b506001600160a01b03166080523480156200004957600080fd5b506200005e565b61489380620034b283390190565b6080516134386200007a600039600061034a01526134386000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100df57806345ec93541461010d5780637c5b033514610120578063e1af802c1461013357600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100ca575b600080fd5b610095610090366004612c04565b61013b565b60405190151581526020015b60405180910390f35b6100b26101d4565b6040516001600160a01b0390911681526020016100a1565b6100dd6100d8366004612cde565b6101e3565b005b6040517f65726332302d707570706574000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100dd61012e366004612cde565b6106a0565b6100b26106d2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f79f50b5b0000000000000000000000000000000000000000000000000000000014806101ce57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101de6106dc565b905090565b60006001600160a01b031661021f7f65726332302d7075707065740000000000000000000000000000000000000000838051906020012061070e565b6001600160a01b03161461025f576040517f1401206800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080828060200190518101906102769190612dd2565b90925090507f9a8d9ccdcfd28f8a8f8f9a8c000000000000000000000000000000000000000071ffffffffffffffffffffffffffffffffffff19831601610305576040517f0f31c63c00000000000000000000000000000000000000000000000000000000815271ffffffffffffffffffffffffffffffffffff19831660048201526024015b60405180910390fd5b61030d610835565b60006103176106d2565b6040516001600160a01b03828116602483015271ffffffffffffffffffffffffffffffffffff19861660448301529192507f00000000000000000000000000000000000000000000000000000000000000009091169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f472466c200000000000000000000000000000000000000000000000000000000179052516103d39190612eaa565b600060405180830381855af49150503d806000811461040e576040519150601f19603f3d011682016040523d82523d6000602084013e610413565b606091505b505050610428610422846108c5565b836108f7565b600061043384610999565b9050600061044183836109e6565b90507f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000601087901c16176001600160a01b03841663ef5d6bbb826104a26101d4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401600060405180830381600087803b15801561050157600080fd5b505af1158015610515573d6000803e3d6000fd5b505060408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610597935001905060405160208183030381529060405261059290612ec6565b610cb6565b6106185760408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610618910160405160208183030381529060405261061390612ec6565b610d9a565b60408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610697910160405160208183030381529060405261069090612ec6565b8284610de6565b50505050505050565b6040517fb6622fc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101de610ea6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061070b5750335b90565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061075a5761075a612eea565b602002602001018181525050828160018151811061077a5761077a612eea565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015281518082039093018352810190526000906108299061080190612ec6565b8360007e14010014000000000000000000000000000000000000000000000000000000610ee5565b60601c95945050505050565b6040805160008082526020820190925261086090651c1d5c1c195d60d21b908051906020012061070e565b6001600160a01b0316036108c357604051651c1d5c1c195d60d21b602082015260300160408051601f19818403018152908290527f217ef9250000000000000000000000000000000000000000000000000000000082526102fc91600401612f2c565b565b60006101ce613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610fa2565b600061094682600001516040805160f89290921b7fff00000000000000000000000000000000000000000000000000000000000000166020830152805160018184030181526021909201905290565b9050600061095c83602001518460400151611029565b9050600061097284602001518560400151611046565b6040805160008152602081019091529091506109918682868686611072565b505050505050565b60006101ce7f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d000000000000000000000000000000000000000000610fa2565b604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f466163746f72790000000000000000000000000000000000000000000000000060308201526000916001600160a01b03851691633ae7af089101604051602081830303815290604052610a7290612ec6565b6040516024810186905260440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb9eb8bfb00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610b0f929190600401612f3f565b6000604051808303816000875af1158015610b2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b569190810190612f58565b806020019051810190610b699190612fa1565b90506001600160a01b03831663bfdfaff77f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f44656c65676174696f6e00000000000000000000000000000000000000000000603082015201604051602081830303815290604052610c3590612ec6565b604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16909152610c7e92919060248101612fca565b600060405180830381600087803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b5050505092915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610cef57610cef612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d8690610d5e90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000610ee5565b9050610d928160f81c90565b949350505050565b610de3817e14010014000000000000000000000000000000000000000000000000000000610dc6611127565b610dce61119f565b610dd66111d9565b610dde61125e565b6112d5565b50565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e1c57610e1c612eea565b602002602001018181525050610ea08482600085604051602001610e6b919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b60408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061138e565b50505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610ee0573391505090565b919050565b600080610ef0610ea6565b9050306001600160a01b03821603610f1657610f0e86868686611404565b915050610d92565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990610f61908990899089908990600401613024565b602060405180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190613053565b6000610fb060706010613082565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b8151815160009181810160389190911b1760609190911b17611022565b6060828260405160200161105b929190613095565b604051602081830303815290604052905092915050565b600061107c610ea6565b9050306001600160a01b038216036110a05761109b868686868661143a565b610991565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb906110ed90899089908990899089906004016130c4565b600060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b50505050505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050605f8160008151811061116157611161612eea565b602002602001019060c581111561117a5761117a613115565b908160c581111561118d5761118d613115565b90525061119981611457565b91505090565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061116157611161612eea565b604080516001808252818301909252606091816020015b60608152602001906001900390816111f05790505090506040518060400160405280600b81526020017f6e616d65737061636549640000000000000000000000000000000000000000008152508160008151811061125057611250612eea565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816112755790505090506040518060400160405280600c81526020017f746f6b656e4164647265737300000000000000000000000000000000000000008152508160008151811061125057611250612eea565b60006112df610ea6565b9050306001600160a01b03821603611304576112ff878787878787611612565b610697565b6040517f0ba51f490000000000000000000000000000000000000000000000000000000081526001600160a01b03821690630ba51f4990611353908a908a908a908a908a908a90600401613180565b600060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b5050505050505050505050565b6000611398610ea6565b9050306001600160a01b038216036113b75761109b86868686866118ff565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906110ed90899089908990899089906004016131ca565b60006114316114138686611914565b60ff858116601b0360080285901c1661142c858761196a565b6119ad565b95945050505050565b611450858585858561144b8b6119fe565b611afc565b5050505050565b6000601c82511115611481578151604051635318beb960e01b81526004016102fc91815260200190565b60008080805b855181101561155c5760006114c58783815181106114a7576114a7612eea565b602002602001015160c58111156114c0576114c0613115565b611deb565b9050806000036114da57600190920191611512565b8215611512576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811061153357611533612eea565b602002602001015160c581111561154c5761154c613115565b901b949094179350600101611487565b50600581111561158257604051635318beb960e01b8152600481018290526024016102fc565b8451819003600861159560026020613211565b61159f9190613224565b83901b9390931792600860016115b760026020613211565b6115c19190613211565b6115cb9190613224565b81901b939093179260086001806115e460026020613211565b6115ee9190613211565b6115f89190613211565b6116029190613224565b9190911b92909217949350505050565b613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000161480159061168b57507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b156116ec57613a3160f11b86876040516020016116aa91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102fc93929160040161323b565b6116f7856000611e4b565b611702846001611fcd565b61170d836000611fcd565b60e084901c60e885901c0160ff1682511461176d5760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff168151146117cd5760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff16146118455760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b61184e86612174565b156118a857858660405160200161186791815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526102fc9291600401612f3f565b6118f486868686866040516020016118c0919061327c565b604051602081830303815290604052866040516020016118e0919061327c565b604051602081830303815290604052612244565b610991866001612358565b611450858561190e848761196a565b8561244f565b6000828260405160200161192992919061328f565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff168110156119a55761199160ff601b83900360080287901c1683613082565b91508061199d816132bd565b91505061196f565b509392505050565b6000602082106119d3576020820484019350602082816119cf576119cf6132d7565b0691505b508254600882021b6020829003808411156119a5576001850154600882021c82179150509392505050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015260009101604051602081830303815290604052611a5d90612ec6565b8203611a8957507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201526101ce91611af39101604051602081830303815290604052611aed90612ec6565b846126a8565b602060006119ad565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611b3294939291906132ed565b60405180910390a2613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001603610991576000611b73876126c4565b905060005b8151811015611c56576000828281518110611b9557611b95612eea565b60200260200101519050611bc16001826affffffffffffffffffffff191661278c90919063ffffffff16565b15611c43576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611c10908c908c908c908c908c908c90600401613337565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050505b5080611c4e816132bd565b915050611b78565b506000611c638888611914565b90506000602087019050611c7b826000838a516127aa565b6000611c868561286a565b1115611d0a576000611c988a8a6128a7565b878155905060208601915060008060005b611cb28861286a565b8160ff161015611d0557611cc78d8d836128fd565b9250611ce28a8260ff166028026038011c64ffffffffff1690565b9150611cf183600087856127aa565b611cfb8286613082565b9450600101611ca9565b505050505b60005b835181101561111b576000848281518110611d2a57611d2a612eea565b60200260200101519050611d566002826affffffffffffffffffffff191661278c90919063ffffffff16565b15611dd8576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90611da5908e908e908e908e908e908e90600401613337565b600060405180830381600087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b505050505b5080611de3816132bd565b915050611d0d565b6000808260c5811115611e0057611e00613115565b60ff1690506061811015611e1a57601f1660010192915050565b60618360c5811115611e2e57611e2e613115565b03611e3c5750601492915050565b50600092915050565b50919050565b80158015611e57575081155b15611e91576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016102fc565b6000611e9c8361286a565b90506005811115611edc576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b6000611ee78461297d565b90506000611ef58383613082565b9050601c811115611f35576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b60005b828110156109915760ff601b82900360080287901c166000819003611f89576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115611fc4576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101611f38565b80158015611fd9575081155b15611ffa57604051635318beb960e01b8152600060048201526024016102fc565b60006120058361286a565b9050600581111561202c57604051635318beb960e01b8152600481018290526024016102fc565b60006120378461297d565b905060006120458383613082565b9050601c81111561206c57604051635318beb960e01b8152600481018290526024016102fc565b60008060005b8381101561212d57600061209a6120898a8461298f565b60c58111156114c0576114c0613115565b11156120e4578481106120d9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612125565b8481101561211e576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101612072565b5083821461215157604051635318beb960e01b8152600481018390526024016102fc565b84811461069757604051635318beb960e01b8152600481018290526024016102fc565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106121ad576121ad612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d869061221c90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000611404565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061227b8484611029565b905060006122898585611046565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106122c3576122c3612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c657300000000000000000000000000000000000000000000000000006030820152815180820390930183528101905261111b9061232f90612ec6565b828686867e60030220202000000000000000000000000000000000000000000000000000611afc565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061238e5761238e612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f757263654964730000000000000000000000000000000000000000006030820152815180820390930183528101905261244a906123fa90612ec6565b8260008560405160200161241591151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ff565b505050565b600061245b8585611914565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be85858560405161249193929190613390565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146124cd5750610ea0565b60006124d8866126c4565b905060005b81518110156125b75760008282815181106124fa576124fa612eea565b602002602001015190506125266004826affffffffffffffffffffff191661278c90919063ffffffff16565b156125a4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612571908b908b908b908b906004016133cd565b600060405180830381600087803b15801561258b57600080fd5b505af115801561259f573d6000803e3d6000fd5b505050505b50806125af816132bd565b9150506124dd565b506125cb828565ffffffffffff16856129b0565b60005b81518110156106975760008282815181106125eb576125eb612eea565b602002602001015190506126176008826affffffffffffffffffffff191661278c90919063ffffffff16565b15612695576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612662908b908b908b908b906004016133cd565b600060405180830381600087803b15801561267c57600080fd5b505af1158015612690573d6000803e3d6000fd5b505050505b50806126a0816132bd565b9150506125ce565b6040805160208101849052908101829052600090606001611929565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106126fe576126fe612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906127759061276d90612ec6565b8360006129c0565b9050610d9261278782600084516129fa565b612a8a565b60008160ff168261279d8560581c90565b1660ff1614905092915050565b821561282457602083106127d4576020830484019350602083816127d0576127d06132d7565b0692505b82156128245760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612815575050610ea0565b50600194909401939182019190035b5b602081106128465781518455600190930192602090910190601f1901612825565b8015610ea0576000600019600883021c198554845182169119161785555050505050565b6000600860018061287d60026020613211565b6128879190613211565b6128919190613211565b61289b9190613224565b8260ff911c1692915050565b600082826040516020016128bc92919061328f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161291292919061328f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008600161288760026020613211565b6000601b8290036008028360ff911c1660c581111561102257611022613115565b61244a83836020840184516127aa565b6060610d926129d08585856128fd565b6129f3846129de8888612a9b565b9060ff166028026038011c64ffffffffff1690565b6000612aae565b6000818311158015612a0d575083518211155b612a49578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102fc93929190613406565b60208401612a578482613082565b90506000612a658585613211565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006110228360156000612ad1565b6000611022612aaa84846128a7565b5490565b60405160208101601f19603f85840101166040528382526119a585858584612b4c565b60606000612adf8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281612b0557612b056132d7565b04905060405193506020840160208202810160405281855260005b82811015612b40578451871c825293870193602090910190600101612b20565b50505050509392505050565b8115612bbe5760208210612b7657602082048401935060208281612b7257612b726132d7565b0691505b8115612bbe5760208290036000600019600883021c1990508554600885021b811984511682821617845250818511612baf575050610ea0565b50600194909401939283900392015b5b60208310612be05783548152600190930192601f1990920191602001612bbf565b8215610ea0576000600019600885021c198251865482169119161782525050505050565b600060208284031215612c1657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461102257600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612c7f57612c7f612c46565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612cae57612cae612c46565b604052919050565b600067ffffffffffffffff821115612cd057612cd0612c46565b50601f01601f191660200190565b600060208284031215612cf057600080fd5b813567ffffffffffffffff811115612d0757600080fd5b8201601f81018413612d1857600080fd5b8035612d2b612d2682612cb6565b612c85565b818152856020838501011115612d4057600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b83811015612d79578181015183820152602001612d61565b50506000910152565b6000612d90612d2684612cb6565b9050828152838383011115612da457600080fd5b611022836020830184612d5e565b600082601f830112612dc357600080fd5b61102283835160208501612d82565b60008060408385031215612de557600080fd5b825171ffffffffffffffffffffffffffffffffffff1981168114612e0857600080fd5b602084015190925067ffffffffffffffff80821115612e2657600080fd5b9084019060608287031215612e3a57600080fd5b612e42612c5c565b825160ff81168114612e5357600080fd5b8152602083015182811115612e6757600080fd5b612e7388828601612db2565b602083015250604083015182811115612e8b57600080fd5b612e9788828601612db2565b6040830152508093505050509250929050565b60008251612ebc818460208701612d5e565b9190910192915050565b80516020808301519190811015611e455760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b60008151808452612f18816020860160208601612d5e565b601f01601f19169290920160200192915050565b6020815260006110226020830184612f00565b828152604060208201526000610d926040830184612f00565b600060208284031215612f6a57600080fd5b815167ffffffffffffffff811115612f8157600080fd5b8201601f81018413612f9257600080fd5b610d9284825160208401612d82565b600060208284031215612fb357600080fd5b81516001600160a01b038116811461102257600080fd5b8381528260208201526060604082015260006114316060830184612f00565b600081518084526020808501945080840160005b8381101561301957815187529582019590820190600101612ffd565b509495945050505050565b84815260806020820152600061303d6080830186612fe9565b60ff949094166040830152506060015292915050565b60006020828403121561306557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ce576101ce61306c565b600083516130a7818460208801612d5e565b8351908301906130bb818360208801612d5e565b01949350505050565b85815260a0602082015260006130dd60a0830187612fe9565b82810360408401526130ef8187612f00565b905084606084015282810360808401526131098185612f00565b98975050505050505050565b634e487b7160e01b600052602160045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613173578284038952613161848351612f00565b98850198935090840190600101613149565b5091979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006131ab60c083018561312b565b82810360a08401526131bd818561312b565b9998505050505050505050565b85815260a0602082015260006131e360a0830187612fe9565b60ff8616604084015282810360608401526131fe8186612f00565b9150508260808301529695505050505050565b818103818111156101ce576101ce61306c565b80820281158282048414176101ce576101ce61306c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006114316060830184612f00565b602081526000611022602083018461312b565b82815260006020808301845182860160005b82811015613173578151845292840192908401906001016132a1565b600060001982036132d0576132d061306c565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6080815260006133006080830187612fe9565b82810360208401526133128187612f00565b9050846040840152828103606084015261332c8185612f00565b979650505050505050565b86815260c06020820152600061335060c0830188612fe9565b82810360408401526133628188612f00565b9050856060840152828103608084015261337c8186612f00565b9150508260a0830152979650505050505050565b6060815260006133a36060830186612fe9565b65ffffffffffff8516602084015282810360408401526133c38185612f00565b9695505050505050565b8481526080602082015260006133e66080830186612fe9565b65ffffffffffff85166040840152828103606084015261332c8185612f00565b6060815260006134196060830186612f00565b6020830194909452506040015291905056fea164736f6c6343000815000a608060405234801561001057600080fd5b50614873806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063472466c214610030575b600080fd5b61004361003e366004612129565b610045565b005b61005661005182610155565b61018d565b610067610062826101d9565b61020b565b61007861007382610247565b610279565b8173ffffffffffffffffffffffffffffffffffffffff16633350b6a961009d836102bd565b6040516100a99061211c565b604051809103906000f0801580156100c5573d6000803e3d6000fd5b506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015260016044820152606401600060405180830381600087803b15801561013957600080fd5b505af115801561014d573d6000803e3d6000fd5b505050505050565b6000610187613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610306565b92915050565b6101d6817e200100200000000000000000000000000000000000000000000000000000006101b961038d565b6101c161044a565b6101c9610484565b6101d161055c565b6105d3565b50565b6000610187613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610306565b6101d6817e200100200000000000000000000000000000000000000000000000000000006102376106a7565b61023f61044a565b6101c96106e1565b6000610187613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610306565b6101d6817e010102010000000000000000000000000000000000000000000000000000006102a5610758565b6102ad610771565b6102b5610836565b6101d1610869565b60006101877f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d0000000000000000000000000000000000000000005b6000610314607060106121b6565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b604080516002808252606082018352600092839291906020830190803683370190505090506061816000815181106103c7576103c76121c9565b602002602001019060c58111156103e0576103e06121df565b908160c58111156103f3576103f36121df565b8152505060618160018151811061040c5761040c6121c9565b602002602001019060c5811115610425576104256121df565b908160c5811115610438576104386121df565b90525061044481610989565b91505090565b60408051600180825281830190925260009182919060208083019080368337019050509050601f8160008151811061040c5761040c6121c9565b6040805160028082526060828101909352816020015b606081526020019060019003908161049a5790505090506040518060400160405280600781526020017f6163636f756e7400000000000000000000000000000000000000000000000000815250816000815181106104fa576104fa6121c9565b60200260200101819052506040518060400160405280600781526020017f7370656e646572000000000000000000000000000000000000000000000000008152508160018151811061054e5761054e6121c9565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816105735790505090506040518060400160405280600581526020017f76616c75650000000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b60006105dd610b4d565b90503073ffffffffffffffffffffffffffffffffffffffff82160361060f5761060a878787878787610b99565b61069e565b6040517f0ba51f4900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630ba51f499061066b908a908a908a908a908a908a9060040161229d565b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505b50505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061040c5761040c6121c9565b604080516001808252818301909252606091816020015b60608152602001906001900390816106f85790505090506040518060400160405280600781526020017f6163636f756e74000000000000000000000000000000000000000000000000008152508160008151811061054e5761054e6121c9565b6040805160008082526020820190925261044481610989565b60408051600380825260808201909252600091829190602082016060803683370190505090506000816000815181106107ac576107ac6121c9565b602002602001019060c58111156107c5576107c56121df565b908160c58111156107d8576107d86121df565b8152505060c5816001815181106107f1576107f16121c9565b602002602001019060c581111561080a5761080a6121df565b908160c581111561081d5761081d6121df565b8152505060c58160028151811061040c5761040c6121c9565b60408051600080825260208201909252606091610863565b606081526020019060019003908161084e5790505b50905090565b60408051600380825260808201909252606091816020015b60608152602001906001900390816108815790505090506040518060400160405280600881526020017f646563696d616c73000000000000000000000000000000000000000000000000815250816000815181106108e1576108e16121c9565b60200260200101819052506040518060400160405280600481526020017f6e616d650000000000000000000000000000000000000000000000000000000081525081600181518110610935576109356121c9565b60200260200101819052506040518060400160405280600681526020017f73796d626f6c00000000000000000000000000000000000000000000000000008152508160028151811061054e5761054e6121c9565b6000601c825111156109bc578151604051635318beb960e01b81526004016109b391815260200190565b60405180910390fd5b60008080805b8551811015610a97576000610a008783815181106109e2576109e26121c9565b602002602001015160c58111156109fb576109fb6121df565b610e86565b905080600003610a1557600190920191610a4d565b8215610a4d576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f030302878381518110610a6e57610a6e6121c9565b602002602001015160c5811115610a8757610a876121df565b901b9490941793506001016109c2565b506005811115610abd57604051635318beb960e01b8152600481018290526024016109b3565b84518190036008610ad0600260206122e7565b610ada91906122fa565b83901b939093179260086001610af2600260206122e7565b610afc91906122e7565b610b0691906122fa565b81901b93909317926008600180610b1f600260206122e7565b610b2991906122e7565b610b3391906122e7565b610b3d91906122fa565b9190911b92909217949350505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e1755460009073ffffffffffffffffffffffffffffffffffffffff1680610b94573391505090565b919050565b613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001614801590610c1257507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b15610c7357613a3160f11b8687604051602001610c3191815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526109b3939291600401612311565b610c7e856000610ee6565b610c89846001611068565b610c94836000611068565b60e084901c60e885901c0160ff16825114610cf45760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff16815114610d545760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff1614610dcc5760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016109b3565b610dd58661120f565b15610e2f578586604051602001610dee91815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526109b39291600401612352565b610e7b8686868686604051602001610e47919061236b565b60405160208183030381529060405286604051602001610e67919061236b565b6040516020818303038152906040526112f3565b61014d866001611413565b6000808260c5811115610e9b57610e9b6121df565b60ff1690506061811015610eb557601f1660010192915050565b60618360c5811115610ec957610ec96121df565b03610ed75750601492915050565b50600092915050565b50919050565b80158015610ef2575081155b15610f2c576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016109b3565b6000610f378361150a565b90506005811115610f77576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b6000610f8284611547565b90506000610f9083836121b6565b9050601c811115610fd0576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016109b3565b60005b8281101561014d5760ff601b82900360080287901c166000819003611024576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081111561105f576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101610fd3565b80158015611074575081155b1561109557604051635318beb960e01b8152600060048201526024016109b3565b60006110a08361150a565b905060058111156110c757604051635318beb960e01b8152600481018290526024016109b3565b60006110d284611547565b905060006110e083836121b6565b9050601c81111561110757604051635318beb960e01b8152600481018290526024016109b3565b60008060005b838110156111c85760006111356111248a84611559565b60c58111156109fb576109fb6121df565b111561117f57848110611174576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909201916111c0565b848110156111b9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b60010161110d565b508382146111ec57604051635318beb960e01b8152600481018390526024016109b3565b84811461069e57604051635318beb960e01b8152600481018290526024016109b3565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110611248576112486121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f75726365496473000000000000000000000000000000000000000000603082015281518082039093018352810190526000906112df906112b79061237e565b8360007e01010001000000000000000000000000000000000000000000000000000000611581565b90506112eb8160f81c90565b949350505050565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061132a84846115b7565b9050600061133885856115d4565b60408051600180825281830190925291925060009190602080830190803683370190505090508981600081518110611372576113726121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201528151808203909301835281019052611407906113de9061237e565b828686867e60030220202000000000000000000000000000000000000000000000000000611600565b50505050505050505050565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110611449576114496121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052611505906114b59061237e565b826000856040516020016114d091151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ef565b505050565b6000600860018061151d600260206122e7565b61152791906122e7565b61153191906122e7565b61153b91906122fa565b8260ff911c1692915050565b600060086001611527600260206122e7565b6000601b8290036008028360ff911c1660c581111561157a5761157a6121df565b9392505050565b60006115ae611590868661190b565b60ff858116601b0360080285901c166115a98587611961565b6119a4565b95945050505050565b8151815160009181810160389190911b1760609190911b1761157a565b606082826040516020016115e99291906123a2565b604051602081830303815290604052905092915050565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611636949392919061240c565b60405180910390a2613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000160361014d576000611677876119f5565b905060005b815181101561175a576000828281518110611699576116996121c9565b602002602001015190506116c56001826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611747576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611714908c908c908c908c908c908c90600401612456565b600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b5080611752816124af565b91505061167c565b506000611767888861190b565b9050600060208701905061177f826000838a51611adb565b600061178a8561150a565b111561180e57600061179c8a8a611b99565b878155905060208601915060008060005b6117b68861150a565b8160ff161015611809576117cb8d8d83611bef565b92506117e68a8260ff166028026038011c64ffffffffff1690565b91506117f58360008785611adb565b6117ff82866121b6565b94506001016117ad565b505050505b60005b835181101561140757600084828151811061182e5761182e6121c9565b6020026020010151905061185a6002826affffffffffffffffffffff1916611abd90919063ffffffff16565b156118dc576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf906118a9908e908e908e908e908e908e90600401612456565b600060405180830381600087803b1580156118c357600080fd5b505af11580156118d7573d6000803e3d6000fd5b505050505b50806118e7816124af565b915050611811565b61190485856118fe8487611961565b85611c6f565b5050505050565b600082826040516020016119209291906124c9565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff1681101561199c5761198860ff601b83900360080287901c16836121b6565b915080611994816124af565b915050611966565b509392505050565b6000602082106119ca576020820484019350602082816119c6576119c6612504565b0691505b508254600882021b60208290038084111561199c576001850154600882021c82179150509392505050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611a2f57611a2f6121c9565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611aa690611a9e9061237e565b836000611ec8565b90506112eb611ab88260008451611f02565b611f92565b60008160ff1682611ace8560581c90565b1660ff1614905092915050565b8215611b555760208310611b0557602083048401935060208381611b0157611b01612504565b0692505b8215611b555760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611b46575050611b93565b50600194909401939182019190035b5b60208110611b775781518455600190930192602090910190601f1901611b56565b8015611b935783548251600019600884021c9182169119161784555b50505050565b60008282604051602001611bae9291906124c9565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b60008383604051602001611c049291906124c9565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b6000611c7b858561190b565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611cb19392919061251a565b60405180910390a2613a3160f11b857fffff0000000000000000000000000000000000000000000000000000000000001614611ced5750611b93565b6000611cf8866119f5565b905060005b8151811015611dd7576000828281518110611d1a57611d1a6121c9565b60200260200101519050611d466004826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611dc4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611d91908b908b908b908b90600401612557565b600060405180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050505b5080611dcf816124af565b915050611cfd565b50611deb828565ffffffffffff1685611fa3565b60005b815181101561069e576000828281518110611e0b57611e0b6121c9565b60200260200101519050611e376008826affffffffffffffffffffff1916611abd90919063ffffffff16565b15611eb5576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611e82908b908b908b908b90600401612557565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b505050505b5080611ec0816124af565b915050611dee565b60606112eb611ed8858585611bef565b611efb84611ee68888611fb3565b9060ff166028026038011c64ffffffffff1690565b6000611fc6565b6000818311158015611f15575083518211155b611f51578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016109b393929190612590565b60208401611f5f84826121b6565b90506000611f6d85856122e7565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b6060600061157a8360156000611fe9565b6115058383602084018451611adb565b600061157a611fc28484611b99565b5490565b60405160208101601f19603f858401011660405283825261199c85858584612064565b60606000611ff78560801c90565b90506fffffffffffffffffffffffffffffffff8516600085828161201d5761201d612504565b04905060405193506020840160208202810160405281855260005b82811015612058578451871c825293870193602090910190600101612038565b50505050509392505050565b81156120d6576020821061208e5760208204840193506020828161208a5761208a612504565b0691505b81156120d65760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116120c7575050611b93565b50600194909401939283900392015b5b602083106120f85783548152600190930192601f19909201916020016120d7565b8215611b93576000600019600885021c198251865482169119161782525050505050565b6122b1806125b683390190565b6000806040838503121561213c57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff8116811461216057600080fd5b915060208301357fffffffffffffffffffffffffffff0000000000000000000000000000000000008116811461219557600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610187576101876121a0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156122105781810151838201526020016121f8565b50506000910152565b600081518084526122318160208601602086016121f5565b601f01601f19169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b8481101561229057601f1986840301895261227e838351612219565b98840198925090830190600101612262565b5090979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006122c860c0830185612245565b82810360a08401526122da8185612245565b9998505050505050505050565b81810381811115610187576101876121a0565b8082028115828204841417610187576101876121a0565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006115ae6060830184612219565b8281526040602082015260006112eb6040830184612219565b60208152600061157a6020830184612245565b80516020808301519190811015610ee05760001960209190910360031b1b16919050565b600083516123b48184602088016121f5565b8351908301906123c88183602088016121f5565b01949350505050565b600081518084526020808501945080840160005b83811015612401578151875295820195908201906001016123e5565b509495945050505050565b60808152600061241f60808301876123d1565b82810360208401526124318187612219565b9050846040840152828103606084015261244b8185612219565b979650505050505050565b86815260c06020820152600061246f60c08301886123d1565b82810360408401526124818188612219565b9050856060840152828103608084015261249b8186612219565b9150508260a0830152979650505050505050565b600060001982036124c2576124c26121a0565b5060010190565b82815260006020808301845182860160005b828110156124f7578151845292840192908401906001016124db565b5091979650505050505050565b634e487b7160e01b600052601260045260246000fd5b60608152600061252d60608301866123d1565b65ffffffffffff85166020840152828103604084015261254d8185612219565b9695505050505050565b84815260806020820152600061257060808301866123d1565b65ffffffffffff85166040840152828103606084015261244b8185612219565b6060815260006125a36060830186612219565b6020830194909452506040015291905056fe608060405234801561001057600080fd5b50612291806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806340c10f19116100975780639dc29fac116100665780639dc29fac146101e8578063a9059cbb146101fb578063dd62ed3e1461020e578063e1af802c1461022157600080fd5b806340c10f19146101ad57806345ec9354146101c257806370a08231146101cd57806395d89b41146101e057600080fd5b8063119df25f116100d3578063119df25f1461014a57806318160ddd1461016a57806323b872dd14610180578063313ce5671461019357600080fd5b806301ffc9a7146100fa57806306fdde0314610122578063095ea7b314610137575b600080fd5b61010d610108366004611d96565b610229565b60405190151581526020015b60405180910390f35b61012a6102c2565b6040516101199190611e28565b61010d610145366004611e52565b6102e1565b610152610303565b6040516001600160a01b039091168152602001610119565b61017261030d565b604051908152602001610119565b61010d61018e366004611e7c565b610327565b61019b610357565b60405160ff9091168152602001610119565b6101c06101bb366004611e52565b61036c565b005b36601f190135610172565b6101726101db366004611eb8565b6103cc565b61012a6103e7565b6101c06101f6366004611e52565b6103fc565b61010d610209366004611e52565b610453565b61017261021c366004611ed3565b61046b565b610152610487565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fb42128800000000000000000000000000000000000000000000000000000000014806102bc57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60606102dc6102d76102d2610491565b6104af565b6104e1565b905090565b6000806102ec610303565b90506102f9818585610507565b5060019392505050565b60006102dc610665565b60006102dc61032261031d610491565b610697565b6106c9565b600080610332610303565b905061033f8582856106ee565b61034a858585610776565b60019150505b9392505050565b60006102dc6103676102d2610491565b61080c565b610374610854565b6001600160a01b0382166103bc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6103c86000838361086f565b5050565b60006102bc6103e16103dc610491565b610a37565b83610a69565b60606102dc6103f76102d2610491565b610ad7565b610404610854565b6001600160a01b038216610447576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6103c88260008361086f565b60008061045e610303565b90506102f9818585610776565b600061035061048061047b610491565b610af6565b8484610b28565b60006102dc610bc3565b60008061049d30610c02565b90506104a98160101b90565b91505090565b60006102bc613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610cde565b604080516000808252602082019092526060916104ff848383610d65565b949350505050565b6001600160a01b03831661054a576040517fe602df05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b03821661058d576040517f94280d62000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6105a361059b61047b610491565b848484610e2c565b6105ab610ee3565b6001600160a01b031663c9a34acd7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256105ea866001600160a01b031690565b6001600160a01b0386166040805160208101889052016040516020818303038152906040526040518563ffffffff1660e01b815260040161062e9493929190611f1c565b600060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b50505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c806106945750335b90565b60006102bc613a3160f11b837f546f74616c537570706c79000000000000000000000000000000000000000000610cde565b6040805160008082526020820190925260006104ff848383630100080160dd1b610fbe565b60006107056106fe61047b610491565b8585610b28565b905060001981146107705781811015610763576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604481018390526064016103b3565b6107708484848403610507565b50505050565b6001600160a01b0383166107b9576040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b6001600160a01b0382166107fc576040517fec442f05000000000000000000000000000000000000000000000000000000008152600060048201526024016103b3565b61080783838361086f565b505050565b6040805160008082526020820190925260006108498483837e01010201000000000000000000000000000000000000000000000000000000610fbe565b60f81c949350505050565b61086d61086030610c02565b610868610303565b61107b565b565b6000610879610491565b9050600061088682610697565b9050600061089383610a37565b90506001600160a01b0386166108c5576108c082856108b1856106c9565b6108bb9190611f57565b61111c565b610935565b60006108d18288610a69565b905084811015610926576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b038816600482015260248101829052604481018690526064016103b3565b6109338288878403611143565b505b6001600160a01b03851661095c576109578285610951856106c9565b0361111c565b610972565b61097281868661096c858a610a69565b01611143565b61097a610ee3565b6001600160a01b031663c9a34acd7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6109b9896001600160a01b031690565b6001600160a01b03891660408051602081018b9052016040516020818303038152906040526040518563ffffffff1660e01b81526004016109fd9493929190611f1c565b600060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b50505050505050505050565b60006102bc613a3160f11b837f42616c616e636573000000000000000000000000000000000000000000000000610cde565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610aae57610aae611f6a565b60209081029190910101526000610ace858383630100080160dd1b610fbe565b95945050505050565b604080516000808252602082019092526060916104ff84836001610d65565b60006102bc613a3160f11b837f416c6c6f77616e63657300000000000000000000000000000000000000000000610cde565b60408051600280825260608201835260009283929190602083019080368337019050509050836001600160a01b031660001b81600081518110610b6d57610b6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610b9957610b99611f6a565b60209081029190910101526000610bb9868383630100080160dd1b610fbe565b9695505050505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610bfd573391505090565b919050565b60408051600180825281830190925260009182919060208083019080368337019050509050826001600160a01b031660001b81600081518110610c4757610c47611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f53797374656d5265676973747279000000000000000000000000000000000000603082015281518082039093018352810190526000906104ff90610cce90611f80565b836000630100080160dd1b610fbe565b6000610cec60706010611f57565b7fffff00000000000000000000000000000000000000000000000000000000000085167dffffffffffffffffffffffffffff00000000000000000000000000000000601086901c16177fffffffffffffffffffffffffffffffff00000000000000000000000000000000841690911c1790509392505050565b60606000610d71610bc3565b9050306001600160a01b03821603610d9657610d8e8585856111ab565b915050610350565b6040517f1e7889770000000000000000000000000000000000000000000000000000000081526001600160a01b03821690631e78897790610ddf90889088908890600401611fe2565b600060405180830381865afa158015610dfc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8e919081019061200e565b509392505050565b604080516002808252606082018352600092602083019080368337019050509050836001600160a01b031660001b81600081518110610e6d57610e6d611f6a565b602002602001018181525050826001600160a01b031660001b81600181518110610e9957610e99611f6a565b602002602001018181525050610edc8582600085604051602001610ebf91815260200190565b60408051601f19818403018152919052630100080160dd1b6111e5565b5050505050565b600080610eef30610c02565b60408051613a3160f11b60208201527f707570706574000000000000000000000000000000000000000000000000000060228201527f50757070657452656769737472790000000000000000000000000000000000006030820152919250600091610f739101604051602081830303815290604052610f6d90611f80565b83611268565b90506001600160a01b0381166102bc576040517f9434f7e1000000000000000000000000000000000000000000000000000000008152306004820152602481018390526044016103b3565b600080610fc9610bc3565b9050306001600160a01b03821603610fef57610fe7868686866112e5565b9150506104ff565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d599061103a9089908990899089906004016120bb565b602060405180830381865afa158015611057573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe791906120ea565b6001600160a01b0381166110d07f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617611312565b6001600160a01b0316146103c8576110e782611405565b816040517fd787b7370000000000000000000000000000000000000000000000000000000081526004016103b3929190612103565b60408051600080825260208201835291810183905290610807908490839060608201610ebf565b60408051600180825281830190925260009160208083019080368337019050509050826001600160a01b031660001b8160008151811061118557611185611f6a565b6020026020010181815250506107708482600085604051602001610ebf91815260200190565b60606104ff6111bb858585611581565b6111de846111c98888611601565b9060ff166028026038011c64ffffffffff1690565b6000611614565b60006111ef610bc3565b9050306001600160a01b038216036112135761120e8686868686611637565b611260565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906109fd908990899089908990899060040161212e565b505050505050565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106112a1576112a1611f6a565b602090810291909101015260006112d98583837e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c95945050505050565b6000610ace6112f4868661164c565b60ff858116601b0360080285901c1661130d85876116a2565b6116dd565b60408051600180825281830190925260009182919060208083019080368337019050509050828160008151811061134b5761134b611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f4e616d6573706163654f776e6572000000000000000000000000000000000000603082015281518082039093018352810190526000906113fa906113d290611f80565b8360007e14010014000000000000000000000000000000000000000000000000000000610fbe565b60601c949350505050565b606081601081901b60006114188361172e565b9050827fffffffffffffffffffffffffffff00000000000000000000000000000000000083161561146b577fffffffffffffffffffffffffffff000000000000000000000000000000000000831661148d565b7f524f4f545f4e414d4553504143450000000000000000000000000000000000005b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316156114bb57826114dd565b7f524f4f545f4e414d4500000000000000000000000000000000000000000000005b6040517fffff00000000000000000000000000000000000000000000000000000000000090931660208401527f3a00000000000000000000000000000000000000000000000000000000000000602284018190527fffffffffffffffffffffffffffffffff00000000000000000000000000000000928316602385015260338401521660348201526044016040516020818303038152906040529350505050919050565b60008383604051602001611596929190612175565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006103506116108484611745565b5490565b60405160208101601f19603f8584010116604052838252610e248585858461179b565b610edc858561164684876116a2565b85611853565b60008282604051602001611661929190612175565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff16811015610e24576116c960ff601b83900360080287901c1683611f57565b9150806116d5816121b0565b9150506116a7565b600060208210611703576020820484019350602082816116ff576116ff6121ca565b0691505b508254600882021b602082900380841115610e24576001850154600882021c82179150509392505050565b600061173c60706010611f57565b9190911b919050565b6000828260405160200161175a929190612175565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b811561180d57602082106117c5576020820484019350602082816117c1576117c16121ca565b0691505b811561180d5760208290036000600019600883021c1990508554600885021b8119845116828216178452508185116117fe575050610770565b50600194909401939283900392015b5b6020831061182f5783548152600190930192601f199092019160200161180e565b8215610770576000600019600885021c198251865482169119161782525050505050565b600061185f858561164c565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be858585604051611895939291906121e0565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146118d15750610770565b60006118dc86611aac565b905060005b81518110156119bb5760008282815181106118fe576118fe611f6a565b6020026020010151905061192a6004826affffffffffffffffffffff1916611b8c90919063ffffffff16565b156119a8576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90611975908b908b908b908b90600401612213565b600060405180830381600087803b15801561198f57600080fd5b505af11580156119a3573d6000803e3d6000fd5b505050505b50806119b3816121b0565b9150506118e1565b506119cf828565ffffffffffff1685611baa565b60005b815181101561065c5760008282815181106119ef576119ef611f6a565b60200260200101519050611a1b6008826affffffffffffffffffffff1916611b8c90919063ffffffff16565b15611a99576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190611a66908b908b908b908b90600401612213565b600060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050505b5080611aa4816121b0565b9150506119d2565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611ae657611ae6611f6a565b60209081029190910181019190915260408051613a3160f11b818401527f73746f726500000000000000000000000000000000000000000000000000000060228201527f53746f7265486f6f6b730000000000000000000000000000000000000000000060308201528151808203909301835281019052600090611b7590611b6d90611f80565b8360006111ab565b90506104ff611b878260008451611bba565b611c4a565b60008160ff1682611b9d8560581c90565b1660ff1614905092915050565b6108078383602084018451611c5b565b6000818311158015611bcd575083518211155b611c09578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016103b39392919061224c565b60208401611c178482611f57565b90506000611c258585612271565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006103508360156000611d1b565b8215611cd55760208310611c8557602083048401935060208381611c8157611c816121ca565b0692505b8215611cd55760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311611cc6575050610770565b50600194909401939182019190035b5b60208110611cf75781518455600190930192602090910190601f1901611cd6565b8015610770576000600019600883021c198554845182169119161785555050505050565b60606000611d298560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281611d4f57611d4f6121ca565b04905060405193506020840160208202810160405281855260005b82811015611d8a578451871c825293870193602090910190600101611d6a565b50505050509392505050565b600060208284031215611da857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461035057600080fd5b60005b83811015611df3578181015183820152602001611ddb565b50506000910152565b60008151808452611e14816020860160208601611dd8565b601f01601f19169290920160200192915050565b6020815260006103506020830184611dfc565b80356001600160a01b0381168114610bfd57600080fd5b60008060408385031215611e6557600080fd5b611e6e83611e3b565b946020939093013593505050565b600080600060608486031215611e9157600080fd5b611e9a84611e3b565b9250611ea860208501611e3b565b9150604084013590509250925092565b600060208284031215611eca57600080fd5b61035082611e3b565b60008060408385031215611ee657600080fd5b611eef83611e3b565b9150611efd60208401611e3b565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b848152836020820152826040820152608060608201526000610bb96080830184611dfc565b634e487b7160e01b600052601160045260246000fd5b808201808211156102bc576102bc611f41565b634e487b7160e01b600052603260045260246000fd5b80516020808301519190811015611fa1576000198160200360031b1b821691505b50919050565b600081518084526020808501945080840160005b83811015611fd757815187529582019590820190600101611fbb565b509495945050505050565b838152606060208201526000611ffb6060830185611fa7565b905060ff83166040830152949350505050565b60006020828403121561202057600080fd5b815167ffffffffffffffff8082111561203857600080fd5b818401915084601f83011261204c57600080fd5b81518181111561205e5761205e611f06565b604051601f8201601f19908116603f0116810190838211818310171561208657612086611f06565b8160405282815287602084870101111561209f57600080fd5b6120b0836020830160208801611dd8565b979650505050505050565b8481526080602082015260006120d46080830186611fa7565b60ff949094166040830152506060015292915050565b6000602082840312156120fc57600080fd5b5051919050565b6040815260006121166040830185611dfc565b90506001600160a01b03831660208301529392505050565b85815260a06020820152600061214760a0830187611fa7565b60ff8616604084015282810360608401526121628186611dfc565b9150508260808301529695505050505050565b82815260006020808301845182860160005b828110156121a357815184529284019290840190600101612187565b5091979650505050505050565b600060001982036121c3576121c3611f41565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6060815260006121f36060830186611fa7565b65ffffffffffff851660208401528281036040840152610bb98185611dfc565b84815260806020820152600061222c6080830186611fa7565b65ffffffffffff8516604084015282810360608401526120b08185611dfc565b60608152600061225f6060830186611dfc565b60208301949094525060400152919050565b818103818111156102bc576102bc611f4156fea164736f6c6343000815000aa164736f6c6343000815000a","sourceMap":"1229:2128:228:-:0;;;1370:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1322:85:228;;;1229:2128;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806317d7de7c1161005b57806317d7de7c146100df57806345ec93541461010d5780637c5b033514610120578063e1af802c1461013357600080fd5b806301ffc9a714610082578063119df25f146100aa57806313861fb5146100ca575b600080fd5b610095610090366004612c04565b61013b565b60405190151581526020015b60405180910390f35b6100b26101d4565b6040516001600160a01b0390911681526020016100a1565b6100dd6100d8366004612cde565b6101e3565b005b6040517f65726332302d707570706574000000000000000000000000000000000000000081526020016100a1565b604051601f1936013581526020016100a1565b6100dd61012e366004612cde565b6106a0565b6100b26106d2565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f79f50b5b0000000000000000000000000000000000000000000000000000000014806101ce57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60006101de6106dc565b905090565b60006001600160a01b031661021f7f65726332302d7075707065740000000000000000000000000000000000000000838051906020012061070e565b6001600160a01b03161461025f576040517f1401206800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080828060200190518101906102769190612dd2565b90925090507f9a8d9ccdcfd28f8a8f8f9a8c000000000000000000000000000000000000000071ffffffffffffffffffffffffffffffffffff19831601610305576040517f0f31c63c00000000000000000000000000000000000000000000000000000000815271ffffffffffffffffffffffffffffffffffff19831660048201526024015b60405180910390fd5b61030d610835565b60006103176106d2565b6040516001600160a01b03828116602483015271ffffffffffffffffffffffffffffffffffff19861660448301529192507f00000000000000000000000000000000000000000000000000000000000000009091169060640160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f472466c200000000000000000000000000000000000000000000000000000000179052516103d39190612eaa565b600060405180830381855af49150503d806000811461040e576040519150601f19603f3d011682016040523d82523d6000602084013e610413565b606091505b505050610428610422846108c5565b836108f7565b600061043384610999565b9050600061044183836109e6565b90507f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000601087901c16176001600160a01b03841663ef5d6bbb826104a26101d4565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b03166024820152604401600060405180830381600087803b15801561050157600080fd5b505af1158015610515573d6000803e3d6000fd5b505060408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610597935001905060405160208183030381529060405261059290612ec6565b610cb6565b6106185760408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610618910160405160208183030381529060405261061390612ec6565b610d9a565b60408051613a3160f11b60208201527f65726332302d707570706574000000000000000000000000000000000000000060228201527f45524332305265676973747279000000000000000000000000000000000000006030820152610697910160405160208183030381529060405261069090612ec6565b8284610de6565b50505050505050565b6040517fb6622fc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006101de610ea6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcc36013560601c8061070b5750335b90565b60408051600280825260608201835260009283929190602083019080368337019050509050836fffffffffffffffffffffffffffffffff19168160008151811061075a5761075a612eea565b602002602001018181525050828160018151811061077a5761077a612eea565b60209081029190910181019190915260408051613a3160f11b818401527f776f726c6400000000000000000000000000000000000000000000000000000060228201527f496e7374616c6c65644d6f64756c657300000000000000000000000000000000603082015281518082039093018352810190526000906108299061080190612ec6565b8360007e14010014000000000000000000000000000000000000000000000000000000610ee5565b60601c95945050505050565b6040805160008082526020820190925261086090651c1d5c1c195d60d21b908051906020012061070e565b6001600160a01b0316036108c357604051651c1d5c1c195d60d21b602082015260300160408051601f19818403018152908290527f217ef9250000000000000000000000000000000000000000000000000000000082526102fc91600401612f2c565b565b60006101ce613a3160f11b837f4d65746164617461000000000000000000000000000000000000000000000000610fa2565b600061094682600001516040805160f89290921b7fff00000000000000000000000000000000000000000000000000000000000000166020830152805160018184030181526021909201905290565b9050600061095c83602001518460400151611029565b9050600061097284602001518560400151611046565b6040805160008152602081019091529091506109918682868686611072565b505050505050565b60006101ce7f7379000000000000000000000000000000000000000000000000000000000000837f455243323053797374656d000000000000000000000000000000000000000000610fa2565b604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f466163746f72790000000000000000000000000000000000000000000000000060308201526000916001600160a01b03851691633ae7af089101604051602081830303815290604052610a7290612ec6565b6040516024810186905260440160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb9eb8bfb00000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152610b0f929190600401612f3f565b6000604051808303816000875af1158015610b2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b569190810190612f58565b806020019051810190610b699190612fa1565b90506001600160a01b03831663bfdfaff77f6e730000000000000000000000000000000000000000000000000000000000007dffffffffffffffffffffffffffff00000000000000000000000000000000851617604080517f73790000000000000000000000000000000000000000000000000000000000006020820152651c1d5c1c195d60d21b60228201527f44656c65676174696f6e00000000000000000000000000000000000000000000603082015201604051602081830303815290604052610c3590612ec6565b604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16909152610c7e92919060248101612fca565b600060405180830381600087803b158015610c9857600080fd5b505af1158015610cac573d6000803e3d6000fd5b5050505092915050565b604080516001808252818301909252600091829190602080830190803683370190505090508281600081518110610cef57610cef612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d8690610d5e90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000610ee5565b9050610d928160f81c90565b949350505050565b610de3817e14010014000000000000000000000000000000000000000000000000000000610dc6611127565b610dce61119f565b610dd66111d9565b610dde61125e565b6112d5565b50565b604080516001808252818301909252600091602080830190803683370190505090508281600081518110610e1c57610e1c612eea565b602002602001018181525050610ea08482600085604051602001610e6b919060609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b60408051601f198184030181529190527e1401001400000000000000000000000000000000000000000000000000000061138e565b50505050565b7f629a4c26e296b22a8e0856e9f6ecb2d1008d7e00081111962cd175fa7488e175546000906001600160a01b031680610ee0573391505090565b919050565b600080610ef0610ea6565b9050306001600160a01b03821603610f1657610f0e86868686611404565b915050610d92565b6040517f8c364d590000000000000000000000000000000000000000000000000000000081526001600160a01b03821690638c364d5990610f61908990899089908990600401613024565b602060405180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190613053565b6000610fb060706010613082565b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008316901c601084901c7dffffffffffffffffffffffffffff00000000000000000000000000000000167fffff0000000000000000000000000000000000000000000000000000000000008616171790505b9392505050565b8151815160009181810160389190911b1760609190911b17611022565b6060828260405160200161105b929190613095565b604051602081830303815290604052905092915050565b600061107c610ea6565b9050306001600160a01b038216036110a05761109b868686868661143a565b610991565b6040517f298314fb0000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063298314fb906110ed90899089908990899089906004016130c4565b600060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b50505050505050505050565b60408051600180825281830190925260009182919060208083019080368337019050509050605f8160008151811061116157611161612eea565b602002602001019060c581111561117a5761117a613115565b908160c581111561118d5761118d613115565b90525061119981611457565b91505090565b6040805160018082528183019092526000918291906020808301908036833701905050905060618160008151811061116157611161612eea565b604080516001808252818301909252606091816020015b60608152602001906001900390816111f05790505090506040518060400160405280600b81526020017f6e616d65737061636549640000000000000000000000000000000000000000008152508160008151811061125057611250612eea565b602002602001018190525090565b604080516001808252818301909252606091816020015b60608152602001906001900390816112755790505090506040518060400160405280600c81526020017f746f6b656e4164647265737300000000000000000000000000000000000000008152508160008151811061125057611250612eea565b60006112df610ea6565b9050306001600160a01b03821603611304576112ff878787878787611612565b610697565b6040517f0ba51f490000000000000000000000000000000000000000000000000000000081526001600160a01b03821690630ba51f4990611353908a908a908a908a908a908a90600401613180565b600060405180830381600087803b15801561136d57600080fd5b505af1158015611381573d6000803e3d6000fd5b5050505050505050505050565b6000611398610ea6565b9050306001600160a01b038216036113b75761109b86868686866118ff565b6040517f390baae00000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063390baae0906110ed90899089908990899089906004016131ca565b60006114316114138686611914565b60ff858116601b0360080285901c1661142c858761196a565b6119ad565b95945050505050565b611450858585858561144b8b6119fe565b611afc565b5050505050565b6000601c82511115611481578151604051635318beb960e01b81526004016102fc91815260200190565b60008080805b855181101561155c5760006114c58783815181106114a7576114a7612eea565b602002602001015160c58111156114c0576114c0613115565b611deb565b9050806000036114da57600190920191611512565b8215611512576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80840193506008826004601f03030287838151811061153357611533612eea565b602002602001015160c581111561154c5761154c613115565b901b949094179350600101611487565b50600581111561158257604051635318beb960e01b8152600481018290526024016102fc565b8451819003600861159560026020613211565b61159f9190613224565b83901b9390931792600860016115b760026020613211565b6115c19190613211565b6115cb9190613224565b81901b939093179260086001806115e460026020613211565b6115ee9190613211565b6115f89190613211565b6116029190613224565b9190911b92909217949350505050565b613a3160f11b867fffff000000000000000000000000000000000000000000000000000000000000161480159061168b57507f6f74000000000000000000000000000000000000000000000000000000000000867fffff0000000000000000000000000000000000000000000000000000000000001614155b156116ec57613a3160f11b86876040516020016116aa91815260200190565b60408051601f19818403018152908290527f31b466830000000000000000000000000000000000000000000000000000000082526102fc93929160040161323b565b6116f7856000611e4b565b611702846001611fcd565b61170d836000611fcd565b60e084901c60e885901c0160ff1682511461176d5760e084901c60e885901c0160ff1682516040517f0f72cb98000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff168151146117cd5760e085901c60e886901c0160ff1681516040517f7dec4c00000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b60e085901c60e886901c0160ff1660e084901c60e885901c0160ff16146118455760e085901c60e886901c0160ff1660e084901c60e885901c0160ff166040517ff29d4d88000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016102fc565b61184e86612174565b156118a857858660405160200161186791815260200190565b60408051601f19818403018152908290527fdfaaf9cf0000000000000000000000000000000000000000000000000000000082526102fc9291600401612f3f565b6118f486868686866040516020016118c0919061327c565b604051602081830303815290604052866040516020016118e0919061327c565b604051602081830303815290604052612244565b610991866001612358565b611450858561190e848761196a565b8561244f565b6000828260405160200161192992919061328f565b60408051601f1981840301815291905280516020909101207f86425bff6b57326c7859e89024fe4f238ca327a1ae4a230180dd2f0e88aaa7d9189392505050565b600080805b8360ff168110156119a55761199160ff601b83900360080287901c1683613082565b91508061199d816132bd565b91505061196f565b509392505050565b6000602082106119d3576020820484019350602082816119cf576119cf6132d7565b0691505b508254600882021b6020829003808411156119a5576001850154600882021c82179150509392505050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c65730000000000000000000000000000000000000000000000000000603082015260009101604051602081830303815290604052611a5d90612ec6565b8203611a8957507e60030220202000000000000000000000000000000000000000000000000000919050565b60408051613a3160f11b60208201526473746f726560d81b60228201527f5461626c6573000000000000000000000000000000000000000000000000000060308201526101ce91611af39101604051602081830303815290604052611aed90612ec6565b846126a8565b602060006119ad565b857f8dbb3a9672eebfd3773e72dd9c102393436816d832c7ba9e1e1ac8fcadcac7a986868686604051611b3294939291906132ed565b60405180910390a2613a3160f11b867fffff0000000000000000000000000000000000000000000000000000000000001603610991576000611b73876126c4565b905060005b8151811015611c56576000828281518110611b9557611b95612eea565b60200260200101519050611bc16001826affffffffffffffffffffff191661278c90919063ffffffff16565b15611c43576040517f57066c9c000000000000000000000000000000000000000000000000000000008152606082901c906357066c9c90611c10908c908c908c908c908c908c90600401613337565b600060405180830381600087803b158015611c2a57600080fd5b505af1158015611c3e573d6000803e3d6000fd5b505050505b5080611c4e816132bd565b915050611b78565b506000611c638888611914565b90506000602087019050611c7b826000838a516127aa565b6000611c868561286a565b1115611d0a576000611c988a8a6128a7565b878155905060208601915060008060005b611cb28861286a565b8160ff161015611d0557611cc78d8d836128fd565b9250611ce28a8260ff166028026038011c64ffffffffff1690565b9150611cf183600087856127aa565b611cfb8286613082565b9450600101611ca9565b505050505b60005b835181101561111b576000848281518110611d2a57611d2a612eea565b60200260200101519050611d566002826affffffffffffffffffffff191661278c90919063ffffffff16565b15611dd8576040517f5b28cdaf000000000000000000000000000000000000000000000000000000008152606082901c90635b28cdaf90611da5908e908e908e908e908e908e90600401613337565b600060405180830381600087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b505050505b5080611de3816132bd565b915050611d0d565b6000808260c5811115611e0057611e00613115565b60ff1690506061811015611e1a57601f1660010192915050565b60618360c5811115611e2e57611e2e613115565b03611e3c5750601492915050565b50600092915050565b50919050565b80158015611e57575081155b15611e91576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600060048201526024016102fc565b6000611e9c8361286a565b90506005811115611edc576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b6000611ee78461297d565b90506000611ef58383613082565b9050601c811115611f35576040517f97e36a0a000000000000000000000000000000000000000000000000000000008152600481018290526024016102fc565b60005b828110156109915760ff601b82900360080287901c166000819003611f89576040517fbf1ac38300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020811115611fc4576040517f2392baa400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101611f38565b80158015611fd9575081155b15611ffa57604051635318beb960e01b8152600060048201526024016102fc565b60006120058361286a565b9050600581111561202c57604051635318beb960e01b8152600481018290526024016102fc565b60006120378461297d565b905060006120458383613082565b9050601c81111561206c57604051635318beb960e01b8152600481018290526024016102fc565b60008060005b8381101561212d57600061209a6120898a8461298f565b60c58111156114c0576114c0613115565b11156120e4578481106120d9576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600190920191612125565b8481101561211e576040517ff1e56be400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001909101905b600101612072565b5083821461215157604051635318beb960e01b8152600481018390526024016102fc565b84811461069757604051635318beb960e01b8152600481018290526024016102fc565b6040805160018082528183019092526000918291906020808301908036833701905050905082816000815181106121ad576121ad612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f7572636549647300000000000000000000000000000000000000000060308201528151808203909301835281019052600090610d869061221c90612ec6565b8360007e01010001000000000000000000000000000000000000000000000000000000611404565b60408051602081018790528082018690526060808201869052825180830390910181526080909101909152600061227b8484611029565b905060006122898585611046565b604080516001808252818301909252919250600091906020808301908036833701905050905089816000815181106122c3576122c3612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5461626c657300000000000000000000000000000000000000000000000000006030820152815180820390930183528101905261111b9061232f90612ec6565b828686867e60030220202000000000000000000000000000000000000000000000000000611afc565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811061238e5761238e612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f5265736f757263654964730000000000000000000000000000000000000000006030820152815180820390930183528101905261244a906123fa90612ec6565b8260008560405160200161241591151560f81b815260010190565b60408051601f198184030181529190527e010100010000000000000000000000000000000000000000000000000000006118ff565b505050565b600061245b8585611914565b9050847f8c0b5119d4cec7b284c6b1b39252a03d1e2f2d7451a5895562524c113bb952be85858560405161249193929190613390565b60405180910390a2613a3160f11b857fffff00000000000000000000000000000000000000000000000000000000000016146124cd5750610ea0565b60006124d8866126c4565b905060005b81518110156125b75760008282815181106124fa576124fa612eea565b602002602001015190506125266004826affffffffffffffffffffff191661278c90919063ffffffff16565b156125a4576040517f964f667d000000000000000000000000000000000000000000000000000000008152606082901c9063964f667d90612571908b908b908b908b906004016133cd565b600060405180830381600087803b15801561258b57600080fd5b505af115801561259f573d6000803e3d6000fd5b505050505b50806125af816132bd565b9150506124dd565b506125cb828565ffffffffffff16856129b0565b60005b81518110156106975760008282815181106125eb576125eb612eea565b602002602001015190506126176008826affffffffffffffffffffff191661278c90919063ffffffff16565b15612695576040517fa8ba8721000000000000000000000000000000000000000000000000000000008152606082901c9063a8ba872190612662908b908b908b908b906004016133cd565b600060405180830381600087803b15801561267c57600080fd5b505af1158015612690573d6000803e3d6000fd5b505050505b50806126a0816132bd565b9150506125ce565b6040805160208101849052908101829052600090606001611929565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106126fe576126fe612eea565b60209081029190910181019190915260408051613a3160f11b818401526473746f726560d81b60228201527f53746f7265486f6f6b7300000000000000000000000000000000000000000000603082015281518082039093018352810190526000906127759061276d90612ec6565b8360006129c0565b9050610d9261278782600084516129fa565b612a8a565b60008160ff168261279d8560581c90565b1660ff1614905092915050565b821561282457602083106127d4576020830484019350602083816127d0576127d06132d7565b0692505b82156128245760208390036000600019600884021c1990506008850281811c91508451811c9050811987541682821617875550818311612815575050610ea0565b50600194909401939182019190035b5b602081106128465781518455600190930192602090910190601f1901612825565b8015610ea0576000600019600883021c198554845182169119161785555050505050565b6000600860018061287d60026020613211565b6128879190613211565b6128919190613211565b61289b9190613224565b8260ff911c1692915050565b600082826040516020016128bc92919061328f565b60408051601f1981840301815291905280516020909101207f14e2fcc58e58e68ec7edc30c8d50dccc3ce2714a623ec81f46b6a63922d76569189392505050565b6000838360405160200161291292919061328f565b604051602081830303815290604052805190602001208260f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3b4102da22e32d82fc925482184f16c09fd4281692720b87d124aef6da48a0f1181860001c90509392505050565b60006008600161288760026020613211565b6000601b8290036008028360ff911c1660c581111561102257611022613115565b61244a83836020840184516127aa565b6060610d926129d08585856128fd565b6129f3846129de8888612a9b565b9060ff166028026038011c64ffffffffff1690565b6000612aae565b6000818311158015612a0d575083518211155b612a49578383836040517f23230fa30000000000000000000000000000000000000000000000000000000081526004016102fc93929190613406565b60208401612a578482613082565b90506000612a658585613211565b6fffffffffffffffffffffffffffffffff1660809290921b9190911795945050505050565b606060006110228360156000612ad1565b6000611022612aaa84846128a7565b5490565b60405160208101601f19603f85840101166040528382526119a585858584612b4c565b60606000612adf8560801c90565b90506fffffffffffffffffffffffffffffffff85166000858281612b0557612b056132d7565b04905060405193506020840160208202810160405281855260005b82811015612b40578451871c825293870193602090910190600101612b20565b50505050509392505050565b8115612bbe5760208210612b7657602082048401935060208281612b7257612b726132d7565b0691505b8115612bbe5760208290036000600019600883021c1990508554600885021b811984511682821617845250818511612baf575050610ea0565b50600194909401939283900392015b5b60208310612be05783548152600190930192601f1990920191602001612bbf565b8215610ea0576000600019600885021c198251865482169119161782525050505050565b600060208284031215612c1657600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461102257600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612c7f57612c7f612c46565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612cae57612cae612c46565b604052919050565b600067ffffffffffffffff821115612cd057612cd0612c46565b50601f01601f191660200190565b600060208284031215612cf057600080fd5b813567ffffffffffffffff811115612d0757600080fd5b8201601f81018413612d1857600080fd5b8035612d2b612d2682612cb6565b612c85565b818152856020838501011115612d4057600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b83811015612d79578181015183820152602001612d61565b50506000910152565b6000612d90612d2684612cb6565b9050828152838383011115612da457600080fd5b611022836020830184612d5e565b600082601f830112612dc357600080fd5b61102283835160208501612d82565b60008060408385031215612de557600080fd5b825171ffffffffffffffffffffffffffffffffffff1981168114612e0857600080fd5b602084015190925067ffffffffffffffff80821115612e2657600080fd5b9084019060608287031215612e3a57600080fd5b612e42612c5c565b825160ff81168114612e5357600080fd5b8152602083015182811115612e6757600080fd5b612e7388828601612db2565b602083015250604083015182811115612e8b57600080fd5b612e9788828601612db2565b6040830152508093505050509250929050565b60008251612ebc818460208701612d5e565b9190910192915050565b80516020808301519190811015611e455760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b60008151808452612f18816020860160208601612d5e565b601f01601f19169290920160200192915050565b6020815260006110226020830184612f00565b828152604060208201526000610d926040830184612f00565b600060208284031215612f6a57600080fd5b815167ffffffffffffffff811115612f8157600080fd5b8201601f81018413612f9257600080fd5b610d9284825160208401612d82565b600060208284031215612fb357600080fd5b81516001600160a01b038116811461102257600080fd5b8381528260208201526060604082015260006114316060830184612f00565b600081518084526020808501945080840160005b8381101561301957815187529582019590820190600101612ffd565b509495945050505050565b84815260806020820152600061303d6080830186612fe9565b60ff949094166040830152506060015292915050565b60006020828403121561306557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ce576101ce61306c565b600083516130a7818460208801612d5e565b8351908301906130bb818360208801612d5e565b01949350505050565b85815260a0602082015260006130dd60a0830187612fe9565b82810360408401526130ef8187612f00565b905084606084015282810360808401526131098185612f00565b98975050505050505050565b634e487b7160e01b600052602160045260246000fd5b600081518084526020808501808196508360051b8101915082860160005b85811015613173578284038952613161848351612f00565b98850198935090840190600101613149565b5091979650505050505050565b86815285602082015284604082015283606082015260c0608082015260006131ab60c083018561312b565b82810360a08401526131bd818561312b565b9998505050505050505050565b85815260a0602082015260006131e360a0830187612fe9565b60ff8616604084015282810360608401526131fe8186612f00565b9150508260808301529695505050505050565b818103818111156101ce576101ce61306c565b80820281158282048414176101ce576101ce61306c565b7fffff000000000000000000000000000000000000000000000000000000000000841681528260208201526060604082015260006114316060830184612f00565b602081526000611022602083018461312b565b82815260006020808301845182860160005b82811015613173578151845292840192908401906001016132a1565b600060001982036132d0576132d061306c565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6080815260006133006080830187612fe9565b82810360208401526133128187612f00565b9050846040840152828103606084015261332c8185612f00565b979650505050505050565b86815260c06020820152600061335060c0830188612fe9565b82810360408401526133628188612f00565b9050856060840152828103608084015261337c8186612f00565b9150508260a0830152979650505050505050565b6060815260006133a36060830186612fe9565b65ffffffffffff8516602084015282810360408401526133c38185612f00565b9695505050505050565b8481526080602082015260006133e66080830186612fe9565b65ffffffffffff85166040840152828103606084015261332c8185612f00565b6060815260006134196060830186612f00565b6020830194909452506040015291905056fea164736f6c6343000815000a","sourceMap":"1229:2128:228:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:220:158;;;;;;:::i;:::-;;:::i;:::-;;;516:14:307;;509:22;491:41;;479:2;464:18;754:220:158;;;;;;;;1245:113:163;;;:::i;:::-;;;-1:-1:-1;;;;;707:55:307;;;689:74;;677:2;662:18;1245:113:163;543:226:307;1780:1474:228;;;;;;:::i;:::-;;:::i;:::-;;1412:87;;;1483:11;2632:98:307;;2620:2;2605:18;1412:87:228;2486:250:307;1599:110:163;;;-1:-1:-1;;3585:14:163;3581:23;3568:37;2887:25:307;;2875:2;2860:18;1599:110:163;2741:177:307;3258:97:228;;;;;;:::i;:::-;;:::i;1925:95:163:-;;;:::i;754:220:158:-;878:4;897:34;;;360:110:153;897:34:158;;:72;;-1:-1:-1;935:34:158;;;188::152;935::158;897:72;890:79;754:220;-1:-1:-1;;754:220:158:o;1245:113:163:-;1288:14;1317:36;:34;:36::i;:::-;1310:43;;1245:113;:::o;1780:1474:228:-;1961:1;-1:-1:-1;;;;;1899:64:228;:50;1920:11;1943:4;1933:15;;;;;;1899:20;:50::i;:::-;-1:-1:-1;;;;;1899:64:228;;1895:117;;1980:25;;;;;;;;;;;;;;1895:117;2039:17;2058:33;2106:4;2095:46;;;;;;;;;;;;:::i;:::-;2038:103;;-1:-1:-1;2038:103:228;-1:-1:-1;2214:29:228;-1:-1:-1;;2214:29:228;;;2210:96;;2260:39;;;;;-1:-1:-1;;5095:79:307;;2260:39:228;;;5077:98:307;5050:18;;2260:39:228;;;;;;;;2210:96;2340:22;:20;:22::i;:::-;2413:16;2443:8;:6;:8::i;:::-;2491:75;;-1:-1:-1;;;;;5398:55:307;;;2491:75:228;;;5380:74:307;-1:-1:-1;;5490:79:307;;5470:18;;;5463:107;5398:55;;-1:-1:-1;2458:19:228;:32;;;;5353:18:307;;2491:75:228;;;-1:-1:-1;;2491:75:228;;;;;;;;;;;;;;;;;;;;2458:109;;;2491:75;2458:109;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2605:56;2623:27;2640:9;2623:16;:27::i;:::-;2652:8;2605:17;:56::i;:::-;2713:24;2740:25;2755:9;2740:14;:25::i;:::-;2713:52;;2771:14;2788:34;2801:5;2808:13;2788:12;:34::i;:::-;2771:51;-1:-1:-1;1559:18:164;1582:33;336:5:122;1582:33:164;;;;1551:65;-1:-1:-1;;;;;2962:23:228;;;1551:65:164;2999:12:228;:10;:12::i;:::-;2962:50;;;;;;;;;;;;;6079:25:307;;;;-1:-1:-1;;;;;6140:55:307;6120:18;;;6113:83;6052:18;;2962:50:228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;850:76:234;;;-1:-1:-1;;;850:76:234;;;6390:92:307;883:16:234;6498:11:307;;;6491:100;901:24:234;6607:12:307;;;6600:101;3071:46:228;;-1:-1:-1;6717:12:307;;-1:-1:-1;850:76:234;;;;;;;;;;;;842:85;;;:::i;:::-;3071:21:228;:46::i;:::-;3066:115;;850:76:234;;;-1:-1:-1;;;850:76:234;;;6390:92:307;883:16:234;6498:11:307;;;6491:100;901:24:234;6607:12:307;;;6600:101;3127:47:228;;6717:12:307;850:76:234;;;;;;;;;;;;842:85;;;:::i;:::-;3127:22:228;:47::i;:::-;850:76:234;;;-1:-1:-1;;;850:76:234;;;6390:92:307;883:16:234;6498:11:307;;;6491:100;901:24:234;6607:12:307;;;6600:101;3186:63:228;;6717:12:307;850:76:234;;;;;;;;;;;;842:85;;;:::i;:::-;3229:11:228;3242:6;3186:17;:63::i;:::-;1823:1431;;;;;;1780:1474;:::o;3258:97::-;3318:32;;;;;;;;;;;;;;1925:95:163;1964:7;1986:29;:27;:29::i;2779:381::-;3063:34;3067:14;3063:34;3050:48;3046:2;3042:57;;3110:45;;-1:-1:-1;3145:10:163;3110:45;2779:381;:::o;4272:357:176:-;4409:16;;;4423:1;4409:16;;;;;;;;4351:21;;;;4409:16;4423:1;4409:16;;;;;;;;;;-1:-1:-1;4409:16:176;4380:45;;4454:10;4446:19;;;4431:9;4441:1;4431:12;;;;;;;;:::i;:::-;;;;;;:34;;;;;4486:13;4471:9;4481:1;4471:12;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;1164:79;;;-1:-1:-1;;;1164:79:176;;;6390:92:307;1197:16:176;6498:11:307;;;6491:100;1215:27:176;6607:12:307;;;6600:101;1164:79:176;;;;;;;;;;6717:12:307;;1164:79:176;;-1:-1:-1;;4522:64:176;;1156:88;;;:::i;:::-;4559:9;4570:1;1361:66;4522:26;:64::i;:::-;4600:23;;;4272:357;-1:-1:-1;;;;;4272:357:176:o;1503:273:228:-;1654:12;;;1680:1;1654:12;;;;;;;;;1603:65;;-1:-1:-1;;;387:17:277;1644:23:228;;;;;;1603:20;:65::i;:::-;-1:-1:-1;;;;;1603:79:228;;1599:173;;1731:32;;-1:-1:-1;;;1731:32:228;;;7420:92:307;7528:12;;1731:32:228;;;-1:-1:-1;;1731:32:228;;;;;;;;;;1699:66;;;;;;;;:::i;1599:173::-;1503:273::o;1047:181:240:-;1106:10;1129:96;-1:-1:-1;;;1192:9:240;1209:13;1129:25;:96::i;15107:443:237:-;15189:24;15216:29;15229:6;:15;;;18192:26;;;11784:3:307;11780:16;;;;11798:66;11776:89;18192:26:237;;;11764:102:307;18192:26:237;;;;;;;;;11882:11:307;;;;18192:26:237;;;18104:119;15216:29;15189:56;;15252:29;15284:41;15298:6;:11;;;15311:6;:13;;;15284;:41::i;:::-;15252:73;;15331:25;15359:41;15373:6;:11;;;15386:6;:13;;;15359;:41::i;:::-;15436:16;;;15407:26;15436:16;;;;;;;;15331:69;;-1:-1:-1;15459:86:237;15481:8;15436:16;15502:11;15515:15;15331:69;15459:21;:86::i;:::-;15183:367;;;;15107:443;;:::o;1230:184:240:-;1287:10;1310:101;1346:15;1374:9;1391:17;1310:25;:101::i;799:322:278:-;659:64:277;;;676:15;659:64;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;704:18:277;6607:12:307;;;6600:101;869:14:278;;-1:-1:-1;;;;;914:10:278;;;;;6717:12:307;659:64:277;;;;;;;;;;;;651:73;;;:::i;:::-;941:60:278;;;;;2887:25:307;;;2860:18;;941:60:278;;;-1:-1:-1;;941:60:278;;;;;;;;;;;;;;;;;;;;914:88;;941:60;914:88;;;;;;;;;941:60;914:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;914:88:278;;;;;;;;;;;;:::i;:::-;898:123;;;;;;;;;;;;:::i;:::-;889:132;-1:-1:-1;;;;;;1025:33:278;;;1079:18:199;606:36:164;2848:46;;2847:74;522:67:277;;;539:15;522:67;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;567:21:277;6607:12:307;;;6600:101;6717:12;522:67:277;;;;;;;;;;;;514:76;;;:::i;:::-;1105:12:278;;;1115:1;1105:12;;;;;;;;;1025:93;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:322;;;;:::o;3213:315:133:-;3326:16;;;3340:1;3326:16;;;;;;;;;3278:11;;;;3326:16;;;;;;;;;;;;-1:-1:-1;3326:16:133;3297:45;;3381:10;3348:9;3358:1;3348:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:22:133;6607:12:307;;;6600:101;1047:74:133;;;;;;;;;;6717:12:307;;1047:74:133;;-1:-1:-1;;3415:64:133;;1039:83;;;:::i;:::-;3452:9;3463:1;1234:66;3415:26;:64::i;:::-;3399:80;;3493:29;3514:5;3501:20;;7878:5;7792:97;3493:29;3485:38;3213:315;-1:-1:-1;;;;3213:315:133:o;2827:174:238:-;2881:115;2907:8;1251:66;2931:14;:12;:14::i;:::-;2947:16;:14;:16::i;:::-;2965:13;:11;:13::i;:::-;2980:15;:13;:15::i;:::-;2881:25;:115::i;:::-;2827:174;:::o;5555:301::-;5679:16;;;5693:1;5679:16;;;;;;;;;5650:26;;5679:16;;;;;;;;;;;-1:-1:-1;5679:16:238;5650:45;;5734:11;5701:9;5711:1;5701:12;;;;;;;;:::i;:::-;;;;;;:45;;;;;5753:98;5780:8;5790:9;5801:1;5822:12;5804:32;;;;;;;10018:2:307;10014:15;;;;10031:66;10010:88;9998:101;;10124:2;10115:12;;9869:264;5804:32:238;;;;-1:-1:-1;;5804:32:238;;;;;;;;;1251:66;5753:26;:98::i;:::-;5644:212;5555:301;;;:::o;1766:227:130:-;996:42;1855:22;1816:7;;-1:-1:-1;;;;;1855:22:130;;1883:106;;1931:10;1924:17;;;1766:227;:::o;1883:106::-;1969:13;1766:227;-1:-1:-1;1766:227:130:o;17702:457::-;17859:7;17874:21;17898:17;:15;:17::i;:::-;17874:41;-1:-1:-1;17950:4:130;-1:-1:-1;;;;;17925:30:130;;;17921:234;;17972:68;17997:7;18006:8;18016:10;18028:11;17972:24;:68::i;:::-;17965:75;;;;;17921:234;18068:80;;;;;-1:-1:-1;;;;;18068:36:130;;;;;:80;;18105:7;;18114:8;;18124:10;;18136:11;;18068:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1008:257:164:-;1095:10;1224:26;399:6;336:5:122;1224:26:164;:::i;:::-;1206:13;;;:45;;336:5:122;1170:31:164;;;;;1151:15;;;:51;:101;;-1:-1:-1;1008:257:164;;;;;;:::o;18414:334:237:-;18696:18;;18716:20;;18514:29;;2377:5:121;;;785;2408:39;;;;2390:58;2489:23;2474:39;;;;2456:58;18674:63:237;2236:344:121;18913:168:237;19001:12;19052:4;19067:6;19028:48;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19021:55;;18913:168;;;;:::o;6388:479:130:-;6574:21;6598:17;:15;:17::i;:::-;6574:41;-1:-1:-1;6650:4:130;-1:-1:-1;;;;;6625:30:130;;;6621:242;;6665:79;6685:7;6694:8;6704:10;6716:14;6732:11;6665:19;:79::i;:::-;6621:242;;;6765:91;;;;;-1:-1:-1;;;;;6765:31:130;;;;;:91;;6797:7;;6806:8;;6816:10;;6828:14;;6844:11;;6765:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6568:299;6388:479;;;;;:::o;1670:200:238:-;1764:19;;;1781:1;1764:19;;;;;;;;;1717:6;;;;1764:19;;;;;;;;;;;;-1:-1:-1;1764:19:238;1731:52;;1805:18;1789:10;1800:1;1789:13;;;;;;;;:::i;:::-;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1837:28:238;1854:10;1837:16;:28::i;:::-;1830:35;;;1670:200;:::o;1987:208::-;2085:19;;;2102:1;2085:19;;;;;;;;;2036:6;;;;2085:19;;;;;;;;;;;;-1:-1:-1;2085:19:238;2050:54;;2128:18;2110:12;2123:1;2110:15;;;;;;;;:::i;2329:142::-;2418:15;;;2431:1;2418:15;;;;;;;;;2375:24;;2418:15;;;;;;;;;;;;;;;;;;;;2407:26;;2439:27;;;;;;;;;;;;;;;;;:8;2448:1;2439:11;;;;;;;;:::i;:::-;;;;;;:27;;;;2329:142;:::o;2611:151::-;2706:15;;;2719:1;2706:15;;;;;;;;;2659:26;;2706:15;;;;;;;;;;;;;;;;;;;;2693:28;;2727:30;;;;;;;;;;;;;;;;;:10;2738:1;2727:13;;;;;;;;:::i;5574:520:130:-;5777:21;5801:17;:15;:17::i;:::-;5777:41;-1:-1:-1;5853:4:130;-1:-1:-1;;;;;5828:30:130;;;5824:266;;5868:91;5892:7;5901:11;5914:9;5925:11;5938:8;5948:10;5868:23;:91::i;:::-;5824:266;;;5980:103;;;;;-1:-1:-1;;;;;5980:35:130;;;;;:103;;6016:7;;6025:11;;6038:9;;6049:11;;6062:8;;6072:10;;5980:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:323;5574:520;;;;;;:::o;10690:455::-;10862:21;10886:17;:15;:17::i;:::-;10862:41;-1:-1:-1;10938:4:130;-1:-1:-1;;;;;10913:30:130;;;10909:232;;10953:74;10978:7;10987:8;10997:10;11009:4;11015:11;10953:24;:74::i;10909:232::-;11048:86;;;;;-1:-1:-1;;;;;11048:36:130;;;;;:86;;11085:7;;11094:8;;11104:10;;11116:4;;11122:11;;11048:86;;;:::i;35212:541:126:-;35369:7;35506:242;35550:59;35591:7;35600:8;35550:40;:59::i;:::-;35627:31;;;;4044:19:109;:27;537:1:136;4043:44:109;4009:79;;;3996:93;35676:63:126;35715:11;35728:10;35676:38;:63::i;:::-;35506:17;:242::i;:::-;35493:255;35212:541;-1:-1:-1;;;;;35212:541:126:o;11576:285::-;11762:94;11772:7;11781:8;11791:10;11803:14;11819:11;11832:23;11847:7;11832:14;:23::i;:::-;11762:9;:94::i;:::-;11576:285;;;;;:::o;1247:2059:123:-;1315:6;647:2:136;1333:7:123;:14;:33;1329:85;;;1399:7;:14;1375:39;;-1:-1:-1;;;1375:39:123;;;;;;2887:25:307;;2875:2;2860:18;;2741:177;1329:85:123;1420:14;;;;1621:956;1645:7;:14;1641:1;:18;1621:956;;;1671:24;1698:32;:7;1706:1;1698:10;;;;;;;;:::i;:::-;;;;;;;:30;;;;;;;;:::i;:::-;;:32::i;:::-;1671:59;;1743:16;1763:1;1743:21;1739:404;;1928:15;;;;;1739:404;;;1972:17;;1968:175;;2096:38;;;;;;;;;;;;;;1968:175;2269:16;2254:31;;;;537:1:136;2531::123;2527;437:2:136;2509:19:123;:23;2508:40;2492:7;2500:1;2492:10;;;;;;;;:::i;:::-;;;;;;;2484:19;;;;;;;;:::i;:::-;:65;;2474:75;;;;;-1:-1:-1;2559:3:123;;1621:956;;;;902:1:136;2621:13:123;:34;2617:85;;;2664:38;;-1:-1:-1;;;2664:38:123;;;;;2887:25:307;;;2860:18;;2664:38:123;2741:177:307;2617:85:123;2802:14;;:30;;;537:1:136;1247:13;1259:1;334:2;1247:13;:::i;:::-;1246:30;;;;:::i;:::-;3090:41:123;;;3080:51;;;;;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;:::-;:17;;;;:::i;:::-;1408:34;;;;:::i;:::-;3147:47:123;;;3137:57;;;;;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;3210:49:123;;;;3200:59;;;;;1247:2059;-1:-1:-1;;;;1247:2059:123:o;7479:1764:126:-;-1:-1:-1;;;7739:7:126;:35;;;;;;:83;;-1:-1:-1;7799:23:126;7778:7;:44;;;;7739:83;7735:209;;;-1:-1:-1;;;7894:7:126;7927;7910:25;;;;;;16110:19:307;;16154:2;16145:12;;15949:214;7910:25:126;;;;-1:-1:-1;;7910:25:126;;;;;;;;;;7839:98;;;;;;;;;;:::i;7735:209::-;7990:43;:11;8025:5;7990:20;:43::i;:::-;8074:40;:9;8107:4;8074:18;:40::i;:::-;8120:43;:11;8155:5;8120:20;:43::i;:::-;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8251:8:126;:15;:40;8247:148;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8372:15:126;;8308:80;;;;;;;;16812:25:307;;;;16853:18;;;16846:34;16785:18;;8308:80:126;16638:248:307;8247:148:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8445:10:126;:17;:44;8441:158;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8574:17:126;;8506:86;;;;;;;;16812:25:307;;;;16853:18;;;16846:34;16785:18;;8506:86:126;16638:248:307;8441:158:126;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8656:50:126;8652:171;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;1576:38:136;5165:60:123;;;1408:34:136;5088:59:123;;;5082:144;5067:159;;8723:93:126;;;;;;;;16812:25:307;;;;16853:18;;;16846:34;16785:18;;8723:93:126;16638:248:307;8652:171:126;8885:31;8908:7;8885:22;:31::i;:::-;8881:140;;;8971:7;9004;8987:25;;;;;;16110:19:307;;16154:2;16145:12;;15949:214;8987:25:126;;;;-1:-1:-1;;8987:25:126;;;;;;;;;;8933:81;;;;;;;;;:::i;8881:140::-;9062:103;9074:7;9083:11;9096:9;9107:11;9131:8;9120:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;9153:10;9142:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;9062:11;:103::i;:::-;9201:37;9224:7;9233:4;9201:22;:37::i;22277:355::-;22449:178;22483:7;22508:8;22538:63;22577:11;22590:10;22538:38;:63::i;:::-;22616:4;22449:16;:178::i;49619:191::-;49721:7;49785;49794:8;49768:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;49768:35:126;;;;;;;;;49758:46;;49768:35;49758:46;;;;41226:22;49751:53;;49619:191;-1:-1:-1;;;49619:191:126:o;50636:242::-;50732:7;;;50771:84;50791:10;50787:14;;:1;:14;50771:84;;;50816:32;3996:93:109;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;50816:32:126;;:::i;:::-;;-1:-1:-1;50803:3:126;;;;:::i;:::-;;;;50771:84;;;-1:-1:-1;50867:6:126;50636:242;-1:-1:-1;;;50636:242:126:o;8680:790:125:-;8778:14;8814:2;8804:6;:12;8800:112;;8873:2;8864:6;:11;8846:29;;;;8895:2;8885:12;;;;;;:::i;:::-;;;;8800:112;-1:-1:-1;9092:21:125;;9088:1;9076:14;;9072:42;9240:2;:11;;;9322:22;;;9318:148;;;9447:1;9431:14;9427:22;9421:29;9417:1;9402:13;9398:21;9394:57;9386:6;9383:69;9373:79;;8794:676;8680:790;;;;;:::o;4858:651:126:-;1147:69:135;;;-1:-1:-1;;;1147:69:135;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1198:17:135;6607:12:307;;;6600:101;4925:11:126;;6717:12:307;1147:69:135;;;;;;;;;;;;1139:78;;;:::i;:::-;5179:7:126;5161:62;5157:112;;-1:-1:-1;1324:66:135;;4858:651:126;-1:-1:-1;4858:651:126:o;5157:112::-;1147:69:135;;;-1:-1:-1;;;1147:69:135;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1198:17:135;6607:12:307;;;6600:101;5313:183:126;;5359:83;;6717:12:307;1147:69:135;;;;;;;;;;;;1139:78;;;:::i;:::-;5433:7:126;5359:40;:83::i;:::-;5462:2;5484:1;5313:17;:183::i;12721:3002::-;12994:7;12978:75;13003:8;13013:10;13025:14;13041:11;12978:75;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;13118:7:126;:35;;;13163:7;13114:62;13314:22;13339:24;13355:7;13339:15;:24::i;:::-;13314:49;;13374:9;13369:340;13389:5;:12;13385:1;:16;13369:340;;;13416:9;13438:5;13444:1;13438:8;;;;;;;;:::i;:::-;;;;;;;13416:31;;13459:33;343:6:138;13459:4:126;:14;;;;;:33;;;;:::i;:::-;13455:248;;;13504:190;;;;;3392:35:110;;;;;13504:47:126;;:190;;13563:7;;13582:8;;13602:10;;13624:14;;13650:11;;13673;;13504:190;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13455:248;-1:-1:-1;13403:3:126;;;;:::i;:::-;;;;13369:340;;;;13772:26;13801:59;13842:7;13851:8;13801:40;:59::i;:::-;13772:88;-1:-1:-1;13866:21:126;826:4:120;816:15;;13866:54:126;;13926:149;13964:18;13998:1;14022:13;14051:10;:17;13926:13;:149::i;:::-;14175:1;14142:30;:11;:28;:30::i;:::-;:34;14138:1174;;;14261:33;14297:66;14345:7;14354:8;14297:47;:66::i;:::-;579:28:125;;;14261:102:126;-1:-1:-1;826:4:120;816:15;;14537:47:126;;14693:27;14728:25;14766:7;14761:545;14779:30;:11;:28;:30::i;:::-;14775:1;:34;;;14761:545;;;14845:63;14887:7;14896:8;14906:1;14845:41;:63::i;:::-;14823:85;-1:-1:-1;14938:25:126;:14;14961:1;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;14938:25:126;14918:45;;14973:170;15015:19;15054:1;15082:13;15115:17;14973:13;:170::i;:::-;15153:34;15170:17;15153:34;;:::i;:::-;;-1:-1:-1;15284:3:126;;14761:545;;;;14178:1134;;;14138:1174;15386:9;15381:338;15401:5;:12;15397:1;:16;15381:338;;;15428:9;15450:5;15456:1;15450:8;;;;;;;;:::i;:::-;;;;;;;15428:31;;15471:32;437:6:138;15471:4:126;:14;;;;;:32;;;;:::i;:::-;15467:246;;;15515:189;;;;;3392:35:110;;;;;15515:46:126;;:189;;15573:7;;15592:8;;15612:10;;15634:14;;15660:11;;15683;;15515:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15467:246;-1:-1:-1;15415:3:126;;;;:::i;:::-;;;;15381:338;;3195:520:107;3261:7;3274:13;3296:10;3290:17;;;;;;;;:::i;:::-;3274:33;;;;3324:2;3316:5;:10;3312:401;;;3568:2;3560:10;3574:1;3559:16;;;-1:-1:-1;;3195:520:107:o;3312:401::-;3610:18;3596:10;:32;;;;;;;;:::i;:::-;;3592:121;;-1:-1:-1;3643:2:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;-1:-1:-1;3707:1:107;;3195:520;-1:-1:-1;;3195:520:107:o;3592:121::-;3270:445;3195:520;;;:::o;6418:1197:109:-;6540:10;6539:11;:36;;;;-1:-1:-1;6022:45:109;;6554:21;6535:95;;;6584:46;;;;;6628:1;6584:46;;;2887:25:307;2860:18;;6584:46:109;2741:177:307;6535:95:109;6698:25;6726:30;:11;:28;:30::i;:::-;6698:58;;902:1:136;6766:17:109;:38;6762:113;;;6813:62;;;;;;;;2887:25:307;;;2860:18;;6813:62:109;2741:177:307;6762:113:109;6882:24;6909:29;:11;:27;:29::i;:::-;6882:56;-1:-1:-1;7013:23:109;7039:36;7058:17;6882:56;7039:36;:::i;:::-;7013:62;;647:2:136;7085:15:109;:34;7081:107;;;7128:60;;;;;;;;2887:25:307;;;2860:18;;7128:60:109;2741:177:307;7081:107:109;7236:9;7231:380;7251:16;7247:1;:20;7231:380;;;3996:93;4044:19;:27;;;537:1:136;4043:44:109;4009:79;;;3996:93;7279:24;7340:21;;;7336:230;;7380:50;;;;;;;;;;;;;;7336:230;334:2:136;7449:16:109;:28;7445:121;;;7496:61;;;;;;;;;;;;;;7445:121;-1:-1:-1;7593:3:109;;7231:380;;5689:1683:123;5796:10;5795:11;:31;;;;-1:-1:-1;6022:45:109;;5810:16:123;5791:80;;;5835:36;;-1:-1:-1;;;5835:36:123;;5869:1;5835:36;;;2887:25:307;2860:18;;5835:36:123;2741:177:307;5791:80:123;5934:25;5962;:6;:23;:25::i;:::-;5934:53;;902:1:136;5997:17:123;:38;5993:103;;;6044:52;;-1:-1:-1;;;6044:52:123;;;;;2887:25:307;;;2860:18;;6044:52:123;2741:177:307;5993:103:123;6103:24;6130;:6;:22;:24::i;:::-;6103:51;-1:-1:-1;6224:23:123;6250:36;6269:17;6103:51;6250:36;:::i;:::-;6224:62;;647:2:136;6296:15:123;:34;6292:97;;;6339:50;;-1:-1:-1;;;6339:50:123;;;;;2887:25:307;;;2860:18;;6339:50:123;2741:177:307;6292:97:123;6448:25;6479:26;6516:9;6511:551;6531:15;6527:1;:19;6511:551;;;6604:1;6562:39;:17;:6;6577:1;6562:14;:17::i;:::-;:37;;;;;;;;:::i;:39::-;:43;6558:459;;;6666:16;6661:1;:21;6657:82;;6691:48;;;;;;;;;;;;;;6657:82;6771:19;;;;;6558:459;;;6873:16;6869:1;:20;6865:81;;;6898:48;;;;;;;;;;;;;;6865:81;6978:20;;;;;6558:459;7044:3;;6511:551;;;;7135:16;7114:17;:37;7110:102;;7160:52;;-1:-1:-1;;;7160:52:123;;;;;2887:25:307;;;2860:18;;7160:52:123;2741:177:307;7110:102:123;7288:17;7266:18;:39;7262:105;;7314:53;;-1:-1:-1;;;7314:53:123;;;;;2887:25:307;;;2860:18;;7314:53:123;2741:177:307;3569:314:133;3683:16;;;3697:1;3683:16;;;;;;;;;3635:11;;;;3683:16;;;;;;;;;;;;-1:-1:-1;3683:16:133;3654:45;;3738:10;3705:9;3715:1;3705:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:22:133;6607:12:307;;;6600:101;1047:74:133;;;;;;;;;;6717:12:307;;1047:74:133;;-1:-1:-1;;3772:62:133;;1039:83;;;:::i;:::-;3807:9;3818:1;1234:66;3772:24;:62::i;20632:676:135:-;25186:53;;;;;;22232:19:307;;;22267:12;;;22260:28;;;25159:12:135;22304::307;;;22297:28;;;25186:53:135;;;;;;;;;;22341:12:307;;;;25186:53:135;;;20923:29;20955:55;20969:18;20989:20;20955:13;:55::i;:::-;20923:87;;21016:25;21044:55;21058:18;21078:20;21044:13;:55::i;:::-;21135:16;;;21149:1;21135:16;;;;;;;;;21016:83;;-1:-1:-1;21106:26:135;;21135:16;;;;;;;;;;;;-1:-1:-1;21135:16:135;21106:45;;21190:7;21157:9;21167:1;21157:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1147:69;;;-1:-1:-1;;;1147:69:135;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1198:17:135;6607:12:307;;;6600:101;1147:69:135;;;;;;;;;;6717:12:307;;1147:69:135;;21205:98;;1139:78;;;:::i;:::-;21235:9;21246:11;21259:15;21276:12;1324:66;21205:19;:98::i;4933:268:133:-;5033:16;;;5047:1;5033:16;;;;;;;;;5004:26;;5033:16;;;;;;;;;;;-1:-1:-1;5033:16:133;5004:45;;5088:10;5055:9;5065:1;5055:12;;;;;;;;:::i;:::-;;;;;;;;;;;:44;;;;1047:74;;;-1:-1:-1;;;1047:74:133;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:22:133;6607:12:307;;;6600:101;1047:74:133;;;;;;;;;;6717:12:307;;1047:74:133;;5106:90;;1039:83;;;:::i;:::-;5141:9;5152:1;5173:6;5155:26;;;;;;20480:14:307;20473:22;20468:3;20464:32;20452:45;;20522:1;20513:11;;20329:201;5155:26:133;;;;-1:-1:-1;;5155:26:133;;;;;;;;;1234:66;5106:24;:90::i;:::-;4998:203;4933:268;;:::o;16359:1506:126:-;16480:16;16499:59;16540:7;16549:8;16499:40;:59::i;:::-;16480:78;;16660:7;16616:100;16679:8;16696:5;16709:4;16616:100;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;16781:7:126;:35;;;16777:62;;16826:7;;;16777:62;16984:22;17009:24;17025:7;17009:15;:24::i;:::-;16984:49;;17044:9;17039:328;17059:5;:12;17055:1;:16;17039:328;;;17086:9;17108:5;17114:1;17108:8;;;;;;;;:::i;:::-;;;;;;;17086:31;;17129:41;548:6:138;17129:4:126;:14;;;;;:41;;;;:::i;:::-;17125:236;;;17182:170;;;;;3392:35:110;;;;;17182:54:126;;:170;;17258:7;;17287:8;;17314:5;;17337:4;;17182:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17125:236;-1:-1:-1;17073:3:126;;;;:::i;:::-;;;;17039:328;;;;17416:70;17448:8;17466:5;17416:70;;17479:4;17416:13;:70::i;:::-;17540:9;17535:326;17555:5;:12;17551:1;:16;17535:326;;;17582:9;17604:5;17610:1;17604:8;;;;;;;;:::i;:::-;;;;;;;17582:31;;17625:40;657:6:138;17625:4:126;:14;;;;;:40;;;;:::i;:::-;17621:234;;;17677:169;;;;;3392:35:110;;;;;17677:53:126;;:169;;17752:7;;17781:8;;17808:5;;17831:4;;17677:169;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17621:234;-1:-1:-1;17569:3:126;;;;:::i;:::-;;;;17535:326;;50062:282;50307:30;;;;;;21863:19:307;;;21898:12;;;21891:28;;;50150:7:126;;21935:12:307;;50307:30:126;21674:279:307;4372:342:134;4488:16;;;4502:1;4488:16;;;;;;;;;4429:22;;4459:26;;4488:16;;;;;;;;;;;;-1:-1:-1;4488:16:134;4459:45;;4543:7;4510:9;4520:1;4510:12;;;;;;;;:::i;:::-;;;;;;;;;;;:41;;;;1047:73;;;-1:-1:-1;;;1047:73:134;;;6390:92:307;-1:-1:-1;;;6498:11:307;;;6491:100;1098:21:134;6607:12:307;;;6600:101;1047:73:134;;;;;;;;;;6717:12:307;;1047:73:134;;-1:-1:-1;;4579:49:134;;1039:82;;;:::i;:::-;4615:9;4626:1;4579:25;:49::i;:::-;4558:70;;4642:66;:44;4663:5;4670:1;4673:5;:12;4642:20;:44::i;:::-;:64;:66::i;2891:136:110:-;2961:4;3013:9;2980:42;;2999:9;2981:15;2991:4;3790:26;;;3660:162;2981:15;:27;2980:42;;;2973:49;;2891:136;;;;:::o;1373:2326:125:-;1486:10;;1482:1491;;1639:2;1629:6;:12;1625:122;;1702:2;1693:6;:11;1675:29;;;;1726:2;1716:12;;;;;;:::i;:::-;;;;1625:122;1837:10;;1833:1134;;2045:2;:11;;;1919:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;2077:31:125;;2277:1;2269:6;2265:14;2313:4;2302:9;2298:20;2290:28;;2368:13;2362:20;2351:9;2347:36;2329:54;;2616:4;2612:9;2595:14;2589:21;2585:37;2516:4;2504:10;2500:21;2443:193;2415:14;2395:253;;2707:13;2697:6;:23;2693:36;;2722:7;;;;2693:36;-1:-1:-1;2870:1:125;2852:19;;;;;2883:30;;;;2925:23;;1833:1134;3003:253;3020:2;3010:6;:12;3003:253;;3115:20;;3092:44;;3189:1;3171:19;;;;3217:2;3200:19;;;;-1:-1:-1;;3229:12:125;3003:253;;;3324:10;;3320:375;;3344:12;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;3626:21:125;;3542:20;;3538:31;;3649:9;;3622:37;3487:184;3443:238;;-1:-1:-1;1373:2326:125;;;;:::o;5098:173:109:-;5172:7;537:1:136;1597;;1577:13;1589:1;334:2;1577:13;:::i;:::-;:17;;;;:::i;:::-;:21;;;;:::i;:::-;1576:38;;;;:::i;:::-;5208:11:109;5187:79;5200:65;;5187:79;;5098:173;-1:-1:-1;;5098:173:109:o;52184:230:126:-;52305:7;52389;52398:8;52372:35;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;52372:35:126;;;;;;;;;52362:46;;52372:35;52362:46;;;;41389:40;52335:73;;52184:230;-1:-1:-1;;;52184:230:126:o;51555:274::-;51699:7;51804;51813:8;51787:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;51777:46;;;;;;51756:17;51749:25;;51729:45;;;41298:34;51729:45;:94;51721:103;;51714:110;;51555:274;;;;;:::o;4700:171:109:-;4773:7;537:1:136;1425;1409:13;1421:1;334:2;1409:13;:::i;3948:206:123:-;4018:10;4108:19;:27;;;4139:1;4107:33;4086:6;4061:82;4078:63;;4061:82;;;;;;;;;:::i;850:162:125:-;939:68;945:14;961:6;826:4:120;816:15;;995:4:125;:11;939:5;:68::i;36221:522:126:-;36357:12;36481:257;36520:79;36562:7;36571:8;36581:17;36520:41;:79::i;:::-;36617:93;36692:17;36617:66;36665:7;36674:8;36617:47;:66::i;:::-;:74;6743:16:121;;862:5;6743:16;785:5;6732:27;6692:68;6670:92;;;6555:218;36617:93:126;36728:1;36481:12;:257::i;2022:570:124:-;2113:5;2211:3;2202:5;:12;;:34;;;;;2225:4;:11;2218:3;:18;;2202:34;2196:85;;2264:4;2270:5;2277:3;2246:35;;;;;;;;;;;;;:::i;2196:85::-;2349:4;2339:15;;2396:17;2408:5;2339:15;2396:17;:::i;:::-;;-1:-1:-1;2419:12:124;2434:11;2440:5;2434:3;:11;:::i;:::-;643:17;2570:15;2562:3;2550:15;;;;2549:37;;;;;;-1:-1:-1;;;;;2022:570:124:o;40037:220:140:-;40103:24;40135:30;40168:32;40186:6;40194:2;40198:1;40168:17;:32::i;52752:301:126:-;52873:13;52965:82;52996:48;53026:7;53035:8;52996:29;:48::i;:::-;4572:21:125;;4466:137;4903:665;5315:4;5309:11;5356:4;5344:17;;-1:-1:-1;;5234:14:125;5403:26;;;5234:14;5230:28;5375:4;5368:63;5475:6;5467;5460:22;5493:51;5498:14;5514:6;5522;5530:13;5493:4;:51::i;2631:1127:142:-;2751:22;2781:21;2805;:11;2946:3:124;2924:25;;2850:104;2805:21:142;2781:45;-1:-1:-1;643:17:124;3187:38;;2832:20:142;2994:11;3187:38:124;2994:11:142;2979:26;;;;:::i;:::-;;2965:40;;3114:4;3108:11;3099:20;;3157:4;3150:5;3146:16;3217:2;3204:11;3200:20;3186:12;3182:39;3176:4;3169:53;3265:11;3258:5;3251:26;3308:1;3285:463;3324:11;3321:1;3318:18;3285:463;;;3718:20;;3697:42;;3676:64;;3590:31;;;;3503:4;3485:23;;;;3411:1;3404:9;3285:463;;;3289:28;;3066:688;;;2631:1127;;;;;:::o;5933:2258:125:-;6050:10;;6046:1421;;6203:2;6193:6;:12;6189:122;;6266:2;6257:6;:11;6239:29;;;;6290:2;6280:12;;;;;;:::i;:::-;;;;6189:122;6401:10;;6397:1064;;6609:2;:11;;;6483:21;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;6641:38:125;;6863:14;6857:21;6853:1;6845:6;6841:14;6837:42;7110:4;7106:9;7090:13;7084:20;7080:36;7011:4;6999:10;6995:21;6938:192;6911:13;6891:251;;7201:13;7191:6;:23;7187:36;;7216:7;;;;7187:36;-1:-1:-1;7364:1:125;7346:19;;;;;7419:23;;;;;7377:30;6397:1064;7496:253;7513:2;7503:6;:12;7496:253;;7607:21;;7585:44;;7682:1;7664:19;;;;-1:-1:-1;;7722:12:125;;;;7710:2;7693:19;7496:253;;;7817:10;;7813:374;;7837:12;-1:-1:-1;;1080:1:137;1067:14;;1045:37;1043:40;8119:20:125;;8034:21;;8030:32;;8141:9;;8115:36;7979:184;7936:237;;-1:-1:-1;5933:2258:125;;;;:::o;14:332:307:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;774:184;-1:-1:-1;;;823:1:307;816:88;923:4;920:1;913:15;947:4;944:1;937:15;963:253;1035:2;1029:9;1077:4;1065:17;;1112:18;1097:34;;1133:22;;;1094:62;1091:88;;;1159:18;;:::i;:::-;1195:2;1188:22;963:253;:::o;1221:334::-;1292:2;1286:9;1348:2;1338:13;;-1:-1:-1;;1334:86:307;1322:99;;1451:18;1436:34;;1472:22;;;1433:62;1430:88;;;1498:18;;:::i;:::-;1534:2;1527:22;1221:334;;-1:-1:-1;1221:334:307:o;1560:245::-;1608:4;1641:18;1633:6;1630:30;1627:56;;;1663:18;;:::i;:::-;-1:-1:-1;1720:2:307;1708:15;-1:-1:-1;;1704:88:307;1794:4;1700:99;;1560:245::o;1810:671::-;1878:6;1931:2;1919:9;1910:7;1906:23;1902:32;1899:52;;;1947:1;1944;1937:12;1899:52;1987:9;1974:23;2020:18;2012:6;2009:30;2006:50;;;2052:1;2049;2042:12;2006:50;2075:22;;2128:4;2120:13;;2116:27;-1:-1:-1;2106:55:307;;2157:1;2154;2147:12;2106:55;2193:2;2180:16;2218:48;2234:31;2262:2;2234:31;:::i;:::-;2218:48;:::i;:::-;2289:2;2282:5;2275:17;2329:7;2324:2;2319;2315;2311:11;2307:20;2304:33;2301:53;;;2350:1;2347;2340:12;2301:53;2405:2;2400;2396;2392:11;2387:2;2380:5;2376:14;2363:45;2449:1;2428:14;;;2444:2;2424:23;2417:34;;;;2432:5;1810:671;-1:-1:-1;;;;1810:671:307:o;2923:250::-;3008:1;3018:113;3032:6;3029:1;3026:13;3018:113;;;3108:11;;;3102:18;3089:11;;;3082:39;3054:2;3047:10;3018:113;;;-1:-1:-1;;3165:1:307;3147:16;;3140:27;2923:250::o;3178:321::-;3254:5;3283:52;3299:35;3327:6;3299:35;:::i;3283:52::-;3274:61;;3358:6;3351:5;3344:21;3398:3;3389:6;3384:3;3380:16;3377:25;3374:45;;;3415:1;3412;3405:12;3374:45;3428:65;3486:6;3479:4;3472:5;3468:16;3463:3;3428:65;:::i;3504:237::-;3558:5;3611:3;3604:4;3596:6;3592:17;3588:27;3578:55;;3629:1;3626;3619:12;3578:55;3651:84;3731:3;3722:6;3716:13;3709:4;3701:6;3697:17;3651:84;:::i;3746:1180::-;3862:6;3870;3923:2;3911:9;3902:7;3898:23;3894:32;3891:52;;;3939:1;3936;3929:12;3891:52;3971:9;3965:16;-1:-1:-1;;4014:5:307;4010:78;4003:5;4000:89;3990:117;;4103:1;4100;4093:12;3990:117;4175:2;4160:18;;4154:25;4126:5;;-1:-1:-1;4198:18:307;4228:14;;;4225:34;;;4255:1;4252;4245:12;4225:34;4278:22;;;;4334:4;4316:16;;;4312:27;4309:47;;;4352:1;4349;4342:12;4309:47;4380:22;;:::i;:::-;4432:2;4426:9;4479:4;4470:7;4466:18;4457:7;4454:31;4444:59;;4499:1;4496;4489:12;4444:59;4512:24;;4575:2;4567:11;;4561:18;4591:16;;;4588:36;;;4620:1;4617;4610:12;4588:36;4658:56;4706:7;4695:8;4691:2;4687:17;4658:56;:::i;:::-;4653:2;4644:7;4640:16;4633:82;;4754:2;4750;4746:11;4740:18;4783:2;4773:8;4770:16;4767:36;;;4799:1;4796;4789:12;4767:36;4837:56;4885:7;4874:8;4870:2;4866:17;4837:56;:::i;:::-;4832:2;4823:7;4819:16;4812:82;;4913:7;4903:17;;;;;3746:1180;;;;;:::o;5581:287::-;5710:3;5748:6;5742:13;5764:66;5823:6;5818:3;5811:4;5803:6;5799:17;5764:66;:::i;:::-;5846:16;;;;;5581:287;-1:-1:-1;;5581:287:307:o;6740:357::-;6858:12;;6905:4;6894:16;;;6888:23;;6858:12;6923:16;;6920:171;;;-1:-1:-1;;6997:4:307;6993:17;;;;6990:1;6986:25;6982:98;6971:110;;6740:357;-1:-1:-1;6740:357:307:o;7102:184::-;-1:-1:-1;;;7151:1:307;7144:88;7251:4;7248:1;7241:15;7275:4;7272:1;7265:15;7551:330;7593:3;7631:5;7625:12;7658:6;7653:3;7646:19;7674:76;7743:6;7736:4;7731:3;7727:14;7720:4;7713:5;7709:16;7674:76;:::i;:::-;7795:2;7783:15;-1:-1:-1;;7779:88:307;7770:98;;;;7870:4;7766:109;;7551:330;-1:-1:-1;;7551:330:307:o;7886:220::-;8035:2;8024:9;8017:21;7998:4;8055:45;8096:2;8085:9;8081:18;8073:6;8055:45;:::i;8325:321::-;8532:6;8521:9;8514:25;8575:2;8570;8559:9;8555:18;8548:30;8495:4;8595:45;8636:2;8625:9;8621:18;8613:6;8595:45;:::i;8651:458::-;8730:6;8783:2;8771:9;8762:7;8758:23;8754:32;8751:52;;;8799:1;8796;8789:12;8751:52;8832:9;8826:16;8865:18;8857:6;8854:30;8851:50;;;8897:1;8894;8887:12;8851:50;8920:22;;8973:4;8965:13;;8961:27;-1:-1:-1;8951:55:307;;9002:1;8999;8992:12;8951:55;9025:78;9095:7;9090:2;9084:9;9079:2;9075;9071:11;9025:78;:::i;9114:321::-;9192:6;9245:2;9233:9;9224:7;9220:23;9216:32;9213:52;;;9261:1;9258;9251:12;9213:52;9293:9;9287:16;-1:-1:-1;;;;;9336:5:307;9332:54;9325:5;9322:65;9312:93;;9401:1;9398;9391:12;9440:424;9707:6;9696:9;9689:25;9750:6;9745:2;9734:9;9730:18;9723:34;9793:2;9788;9777:9;9773:18;9766:30;9670:4;9813:45;9854:2;9843:9;9839:18;9831:6;9813:45;:::i;10138:435::-;10191:3;10229:5;10223:12;10256:6;10251:3;10244:19;10282:4;10311:2;10306:3;10302:12;10295:19;;10348:2;10341:5;10337:14;10369:1;10379:169;10393:6;10390:1;10387:13;10379:169;;;10454:13;;10442:26;;10488:12;;;;10523:15;;;;10415:1;10408:9;10379:169;;;-1:-1:-1;10564:3:307;;10138:435;-1:-1:-1;;;;;10138:435:307:o;10578:548::-;10902:6;10891:9;10884:25;10945:3;10940:2;10929:9;10925:18;10918:31;10865:4;10966:57;11018:3;11007:9;11003:19;10995:6;10966:57;:::i;:::-;11071:4;11059:17;;;;11054:2;11039:18;;11032:45;-1:-1:-1;11108:2:307;11093:18;11086:34;10958:65;10578:548;-1:-1:-1;;10578:548:307:o;11131:184::-;11201:6;11254:2;11242:9;11233:7;11229:23;11225:32;11222:52;;;11270:1;11267;11260:12;11222:52;-1:-1:-1;11293:16:307;;11131:184;-1:-1:-1;11131:184:307:o;11320:::-;-1:-1:-1;;;11369:1:307;11362:88;11469:4;11466:1;11459:15;11493:4;11490:1;11483:15;11509:125;11574:9;;;11595:10;;;11592:36;;;11608:18;;:::i;11904:492::-;12079:3;12117:6;12111:13;12133:66;12192:6;12187:3;12180:4;12172:6;12168:17;12133:66;:::i;:::-;12262:13;;12221:16;;;;12284:70;12262:13;12221:16;12331:4;12319:17;;12284:70;:::i;:::-;12370:20;;11904:492;-1:-1:-1;;;;11904:492:307:o;12401:795::-;12795:6;12784:9;12777:25;12838:3;12833:2;12822:9;12818:18;12811:31;12758:4;12865:57;12917:3;12906:9;12902:19;12894:6;12865:57;:::i;:::-;12970:9;12962:6;12958:22;12953:2;12942:9;12938:18;12931:50;13004:33;13030:6;13022;13004:33;:::i;:::-;12990:47;;13073:6;13068:2;13057:9;13053:18;13046:34;13129:9;13121:6;13117:22;13111:3;13100:9;13096:19;13089:51;13157:33;13183:6;13175;13157:33;:::i;:::-;13149:41;12401:795;-1:-1:-1;;;;;;;;12401:795:307:o;13201:184::-;-1:-1:-1;;;13250:1:307;13243:88;13350:4;13347:1;13340:15;13374:4;13371:1;13364:15;13390:616;13442:3;13480:5;13474:12;13507:6;13502:3;13495:19;13533:4;13574:2;13569:3;13565:12;13599:11;13626;13619:18;;13676:6;13673:1;13669:14;13662:5;13658:26;13646:38;;13718:2;13711:5;13707:14;13739:1;13749:231;13763:6;13760:1;13757:13;13749:231;;;13834:5;13828:4;13824:16;13819:3;13812:29;13862:38;13895:4;13886:6;13880:13;13862:38;:::i;:::-;13958:12;;;;13854:46;-1:-1:-1;13923:15:307;;;;13785:1;13778:9;13749:231;;;-1:-1:-1;13996:4:307;;13390:616;-1:-1:-1;;;;;;;13390:616:307:o;14011:912::-;14541:6;14530:9;14523:25;14584:6;14579:2;14568:9;14564:18;14557:34;14627:6;14622:2;14611:9;14607:18;14600:34;14670:6;14665:2;14654:9;14650:18;14643:34;14714:3;14708;14697:9;14693:19;14686:32;14504:4;14741:56;14792:3;14781:9;14777:19;14769:6;14741:56;:::i;:::-;14846:9;14838:6;14834:22;14828:3;14817:9;14813:19;14806:51;14874:43;14910:6;14902;14874:43;:::i;:::-;14866:51;14011:912;-1:-1:-1;;;;;;;;;14011:912:307:o;14928:710::-;15298:6;15287:9;15280:25;15341:3;15336:2;15325:9;15321:18;15314:31;15261:4;15368:57;15420:3;15409:9;15405:19;15397:6;15368:57;:::i;:::-;15473:4;15465:6;15461:17;15456:2;15445:9;15441:18;15434:45;15527:9;15519:6;15515:22;15510:2;15499:9;15495:18;15488:50;15555:33;15581:6;15573;15555:33;:::i;:::-;15547:41;;;15625:6;15619:3;15608:9;15604:19;15597:35;14928:710;;;;;;;;:::o;15643:128::-;15710:9;;;15731:11;;;15728:37;;;15745:18;;:::i;15776:168::-;15849:9;;;15880;;15897:15;;;15891:22;;15877:37;15867:71;;15918:18;;:::i;16168:465::-;16415:66;16407:6;16403:79;16392:9;16385:98;16519:6;16514:2;16503:9;16499:18;16492:34;16562:2;16557;16546:9;16542:18;16535:30;16366:4;16582:45;16623:2;16612:9;16608:18;16600:6;16582:45;:::i;17219:280::-;17418:2;17407:9;17400:21;17381:4;17438:55;17489:2;17478:9;17474:18;17466:6;17438:55;:::i;17504:640::-;17755:6;17750:3;17743:19;17725:3;17781:2;17814;17809:3;17805:12;17846:6;17840:13;17911:2;17903:6;17899:15;17932:1;17942:175;17956:6;17953:1;17950:13;17942:175;;;18019:13;;18005:28;;18055:14;;;;18092:15;;;;17978:1;17971:9;17942:175;;18149:195;18188:3;-1:-1:-1;;18212:5:307;18209:77;18206:103;;18289:18;;:::i;:::-;-1:-1:-1;18336:1:307;18325:13;;18149:195::o;18349:184::-;-1:-1:-1;;;18398:1:307;18391:88;18498:4;18495:1;18488:15;18522:4;18519:1;18512:15;18538:691;18872:3;18861:9;18854:22;18835:4;18899:57;18951:3;18940:9;18936:19;18928:6;18899:57;:::i;:::-;19004:9;18996:6;18992:22;18987:2;18976:9;18972:18;18965:50;19038:33;19064:6;19056;19038:33;:::i;:::-;19024:47;;19107:6;19102:2;19091:9;19087:18;19080:34;19162:9;19154:6;19150:22;19145:2;19134:9;19130:18;19123:50;19190:33;19216:6;19208;19190:33;:::i;:::-;19182:41;18538:691;-1:-1:-1;;;;;;;18538:691:307:o;19234:900::-;19689:6;19678:9;19671:25;19732:3;19727:2;19716:9;19712:18;19705:31;19652:4;19759:57;19811:3;19800:9;19796:19;19788:6;19759:57;:::i;:::-;19864:9;19856:6;19852:22;19847:2;19836:9;19832:18;19825:50;19898:33;19924:6;19916;19898:33;:::i;:::-;19884:47;;19967:6;19962:2;19951:9;19947:18;19940:34;20023:9;20015:6;20011:22;20005:3;19994:9;19990:19;19983:51;20051:33;20077:6;20069;20051:33;:::i;:::-;20043:41;;;20121:6;20115:3;20104:9;20100:19;20093:35;19234:900;;;;;;;;;:::o;20535:512::-;20786:2;20775:9;20768:21;20749:4;20812:56;20864:2;20853:9;20849:18;20841:6;20812:56;:::i;:::-;20916:14;20908:6;20904:27;20899:2;20888:9;20884:18;20877:55;20980:9;20972:6;20968:22;20963:2;20952:9;20948:18;20941:50;21008:33;21034:6;21026;21008:33;:::i;:::-;21000:41;20535:512;-1:-1:-1;;;;;;20535:512:307:o;21052:617::-;21363:6;21352:9;21345:25;21406:3;21401:2;21390:9;21386:18;21379:31;21326:4;21433:57;21485:3;21474:9;21470:19;21462:6;21433:57;:::i;:::-;21538:14;21530:6;21526:27;21521:2;21510:9;21506:18;21499:55;21602:9;21594:6;21590:22;21585:2;21574:9;21570:18;21563:50;21630:33;21656:6;21648;21630:33;:::i;22364:360::-;22567:2;22556:9;22549:21;22530:4;22587:45;22628:2;22617:9;22613:18;22605:6;22587:45;:::i;:::-;22663:2;22648:18;;22641:34;;;;-1:-1:-1;22706:2:307;22691:18;22684:34;22579:53;22364:360;-1:-1:-1;22364:360:307:o","linkReferences":{},"immutableReferences":{"121639":[{"start":842,"length":32}]}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","getName()":"17d7de7c","install(bytes)":"13861fb5","installRoot(bytes)":"7c5b0335","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"ERC20Module_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"FieldLayoutLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayoutLib_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"dependency\",\"type\":\"string\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"SchemaLib_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SchemaLib_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"PackedCounter\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes16\",\"name\":\"\",\"type\":\"bytes16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"args\",\"type\":\"bytes\"}],\"name\":\"install\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"installRoot\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"Module_RootInstallNotSupported()\":[{\"details\":\"Errors to represent non-support of specific installation types.\"}],\"SchemaLib_InvalidLength(uint256)\":[{\"details\":\"Error raised when the provided schema has an invalid length.\"}],\"SchemaLib_StaticTypeAfterDynamicType()\":[{\"details\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}]},\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"getName()\":{\"details\":\"Provides a way to identify the module by a unique name.\",\"returns\":{\"_0\":\"The name of the module as a bytes16.\"}},\"install(bytes)\":{\"details\":\"This function is invoked by the World contract during `installModule` process. The module expects to be called via the World contract and thus installs itself on the `msg.sender`. Logic might differ from `installRoot`, for example, this might accept namespace parameters.\",\"params\":{\"args\":\"Arguments that may be needed during the installation process.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Overrides the functionality from IERC165 and WorldContextConsumer to check for supported interfaces.\",\"params\":{\"interfaceId\":\"The bytes4 identifier for the interface.\"},\"returns\":{\"_0\":\"true if the interface is supported, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"getName()\":{\"notice\":\"Return the name of the module.\"},\"install(bytes)\":{\"notice\":\"Installs the module.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if the given interfaceId is supported by this contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/modules/erc20-puppet/ERC20Module.sol\":\"ERC20Module\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4\",\"dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba\",\"dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18\",\"dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e\",\"dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534\",\"dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5\",\"dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751\",\"dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95\",\"dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a\",\"dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"node_modules/@latticexyz/world/src/DelegationControl.sol\":{\"keccak256\":\"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c\",\"dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9\"]},\"node_modules/@latticexyz/world/src/IDelegationControl.sol\":{\"keccak256\":\"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d\",\"dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883\",\"dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510\",\"dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c\",\"dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs\"]},\"node_modules/@latticexyz/world/src/Module.sol\":{\"keccak256\":\"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5\",\"dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd\",\"dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518\",\"dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb\",\"dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255\",\"dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5\",\"dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8\",\"dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8\",\"dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol\":{\"keccak256\":\"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b\",\"dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0\",\"dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad\",\"dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh\"]},\"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol\":{\"keccak256\":\"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198\",\"dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff\"]},\"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac\",\"dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X\"]},\"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93\",\"dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF\"]},\"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol\":{\"keccak256\":\"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae\",\"dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN\"]},\"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol\":{\"keccak256\":\"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1\",\"dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218\",\"dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc\"]},\"node_modules/@latticexyz/world/src/modules/core/types.sol\":{\"keccak256\":\"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3\",\"dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2\",\"dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9\"]},\"src/modules/erc20-puppet/ERC20Module.sol\":{\"keccak256\":\"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6\",\"dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR\"]},\"src/modules/erc20-puppet/ERC20System.sol\":{\"keccak256\":\"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85\",\"dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot\"]},\"src/modules/erc20-puppet/IERC20.sol\":{\"keccak256\":\"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9\",\"dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS\"]},\"src/modules/erc20-puppet/IERC20Errors.sol\":{\"keccak256\":\"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b\",\"dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6\"]},\"src/modules/erc20-puppet/IERC20Events.sol\":{\"keccak256\":\"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f\",\"dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5\"]},\"src/modules/erc20-puppet/IERC20Mintable.sol\":{\"keccak256\":\"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205\",\"dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E\"]},\"src/modules/erc20-puppet/constants.sol\":{\"keccak256\":\"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b\",\"dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk\"]},\"src/modules/erc20-puppet/tables/Allowances.sol\":{\"keccak256\":\"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768\",\"dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo\"]},\"src/modules/erc20-puppet/tables/ERC20Metadata.sol\":{\"keccak256\":\"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee\",\"dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51\"]},\"src/modules/erc20-puppet/tables/ERC20Registry.sol\":{\"keccak256\":\"0xd84e88798b32ca0a8d5321b832262f4aaf74fe2cb28a0bb1073d17f4fe3b649e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac87a8c584663f797aaedfa76fccf0641e1db326e276a602746147eb84419ab7\",\"dweb:/ipfs/Qmdjcr9mEoZ5RDDyaHjZcysaimsocLmDmPiRXxD3YtbiEM\"]},\"src/modules/erc20-puppet/tables/TotalSupply.sol\":{\"keccak256\":\"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b\",\"dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9\"]},\"src/modules/erc20-puppet/utils.sol\":{\"keccak256\":\"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e\",\"dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN\"]},\"src/modules/puppet/Puppet.sol\":{\"keccak256\":\"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b\",\"dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD\"]},\"src/modules/puppet/PuppetDelegationControl.sol\":{\"keccak256\":\"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b\",\"dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW\"]},\"src/modules/puppet/PuppetFactorySystem.sol\":{\"keccak256\":\"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a\",\"dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t\"]},\"src/modules/puppet/PuppetMaster.sol\":{\"keccak256\":\"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f\",\"dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9\"]},\"src/modules/puppet/constants.sol\":{\"keccak256\":\"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449\",\"dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur\"]},\"src/modules/puppet/createPuppet.sol\":{\"keccak256\":\"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c\",\"dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3\"]},\"src/modules/puppet/tables/PuppetRegistry.sol\":{\"keccak256\":\"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436\",\"dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE\"]},\"src/modules/puppet/utils.sol\":{\"keccak256\":\"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c\",\"dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf\"]},\"src/modules/tokens/tables/Balances.sol\":{\"keccak256\":\"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d\",\"dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe\"]},\"src/utils/AccessControlLib.sol\":{\"keccak256\":\"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0\",\"dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.21+commit.d9974bed"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"ERC20Module_InvalidNamespace"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"FieldLayoutLib_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthDoesNotFitInAWord"},{"inputs":[],"type":"error","name":"FieldLayoutLib_StaticLengthIsZero"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"string","name":"dependency","type":"string"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"SchemaLib_InvalidLength"},{"inputs":[],"type":"error","name":"SchemaLib_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"PackedCounter","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getName","outputs":[{"internalType":"bytes16","name":"","type":"bytes16"}]},{"inputs":[{"internalType":"bytes","name":"args","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"install"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function","name":"installRoot"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"_msgSender()":{"returns":{"sender":"The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_msgValue()":{"returns":{"value":"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."}},"_world()":{"returns":{"_0":"The address of the World contract that routed the call to this WorldContextConsumer."}},"getName()":{"details":"Provides a way to identify the module by a unique name.","returns":{"_0":"The name of the module as a bytes16."}},"install(bytes)":{"details":"This function is invoked by the World contract during `installModule` process. The module expects to be called via the World contract and thus installs itself on the `msg.sender`. Logic might differ from `installRoot`, for example, this might accept namespace parameters.","params":{"args":"Arguments that may be needed during the installation process."}},"supportsInterface(bytes4)":{"details":"Overrides the functionality from IERC165 and WorldContextConsumer to check for supported interfaces.","params":{"interfaceId":"The bytes4 identifier for the interface."},"returns":{"_0":"true if the interface is supported, false otherwise."}}},"version":1},"userdoc":{"kind":"user","methods":{"_msgSender()":{"notice":"Extract the `msg.sender` from the context appended to the calldata."},"_msgValue()":{"notice":"Extract the `msg.value` from the context appended to the calldata."},"_world()":{"notice":"Get the address of the World contract that routed the call to this WorldContextConsumer."},"getName()":{"notice":"Return the name of the module."},"install(bytes)":{"notice":"Installs the module."},"supportsInterface(bytes4)":{"notice":"Checks if the given interfaceId is supported by this contract."}},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/modules/erc20-puppet/ERC20Module.sol":"ERC20Module"},"libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb","urls":["bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4","dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558","urls":["bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4","dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0","urls":["bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba","dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd","urls":["bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18","dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf","urls":["bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2","dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827","urls":["bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0","dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreData.sol":{"keccak256":"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5","urls":["bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a","dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212","urls":["bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc","dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f","urls":["bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d","dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e","urls":["bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e","dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37","urls":["bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac","dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f","urls":["bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115","dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b","urls":["bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1","dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7","urls":["bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5","dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv"],"license":"MIT"},"node_modules/@latticexyz/store/src/PackedCounter.sol":{"keccak256":"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb","urls":["bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0","dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed","urls":["bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d","dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401","urls":["bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3","dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32","urls":["bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c","dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5","urls":["bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648","dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180","urls":["bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534","dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416","urls":["bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7","dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3","urls":["bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6","dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xc5c6f807cff6b4dc486525c559ba3f7cbb034ac5895636ee64c9d01defa6a38e","urls":["bzz-raw://84d3a3b3fd3afa2ab3231fd7fe981889dfb0600deec34c5d4e9c07d3187af8a5","dweb:/ipfs/Qmanj7WjETqBYQXkxKLjqWs4vMp3en3N69B5MacKme5fpD"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf7a9bf3e37b486377005c556cdf5b813ea1a41278b3a0349f81e3c82a2f1c789","urls":["bzz-raw://92cc87add89abcb126bf3cd0b284f25065c2b9c90a49f8dba4629b28a5b87751","dweb:/ipfs/QmNNBDSK5GNujERGiSUhorbmtpdD2UnGz7MqSSDasEGdub"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa1186b8b6143b4a87cea1624785494398be1613cb7c6f9e57734e1cca1d5dd14","urls":["bzz-raw://488c158082622689d035d7964c6ca063295e53078291c340eb6a23db08e8ff95","dweb:/ipfs/QmWcjo3B5SH7jStXKAuf7qvF2ouz6syw9c7aT86PnTgRqW"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0xd47e1921c07fc8608157b5dc343fcef7235e891ea6a21dec1fb118a0bd797fcb","urls":["bzz-raw://01a6ad068e6991994a0939f22a55245e0c7c82fc5e274da0af616286a8acfc7a","dweb:/ipfs/QmPokA3pSexzZY33MMV6BGx48ZwQegdUN5AijiAfycSDxy"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076","urls":["bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793","dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC"],"license":"MIT"},"node_modules/@latticexyz/store/src/leftMask.sol":{"keccak256":"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f","urls":["bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401","dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5","urls":["bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81","dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2","urls":["bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84","dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04","urls":["bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1","dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d","urls":["bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49","dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b","urls":["bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256","dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c","urls":["bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491","dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk"],"license":"MIT"},"node_modules/@latticexyz/world/src/DelegationControl.sol":{"keccak256":"0xebe8f1d4a86bcd052afe19773cc5b48da49a7742033c2cc6f06c17a20be907b9","urls":["bzz-raw://20dd17dc78d0aff086ae0b80823cdc8544cdef4b545ec58303a1a8ef19c5372c","dweb:/ipfs/QmdTBo4xSMEQAQoae5o2L2DB7yGBv9TmzZwR3LmUjynEY9"],"license":"MIT"},"node_modules/@latticexyz/world/src/IDelegationControl.sol":{"keccak256":"0xbf3da1c6ab38b3db62a4f4dd0235280d1fb07d8d465a145d6fd9eaf4bb4c3553","urls":["bzz-raw://30205a69d660ed8de5bf34ee73ec9033737d544bc7572130c439b2467606469d","dweb:/ipfs/QmUWTNdSW1bxXjaQzMUCLqBBoLYYre7CgDko4Qy12DaRNS"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47","urls":["bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5","dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0x4535542ceb57e77096f24b943285bc158c48ef5291999f9c1e27f5682f8a9581","urls":["bzz-raw://ec670524d19c50c659e385bc4dcb4757b065e1b5fe14160244537a7cd7a4b883","dweb:/ipfs/QmT7NSWFSQ6MxYefe665srKMT2GTWomrPRZAHLjrFhQzV6"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0xb2114b6b66c0e7d8304d9e1d06aa1d0731f089daa6a0584e6cf744d9c48cf4db","urls":["bzz-raw://ebbb172970b106dd4ae5a6d5e417ac75cad7529d2b94c1601e10b886d0edf510","dweb:/ipfs/QmPGn4F92hjkFch6Jh2NB37EYLLfstw6JxJKUZjXBFqGCw"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500","urls":["bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d","dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7","urls":["bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83","dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0x9dc133cb55dc23fd6fcbbef8078bb4ea9bf67d698400cf89fc62b905b60cf5eb","urls":["bzz-raw://7c1a57df7052218483eafe72d873660f39a73e2e06c1b14ad8a579d85b94bc6c","dweb:/ipfs/Qme7dnjvADGZyM2L7nZ51nSjsjXXF9isTVCpWaUCd1cEGs"],"license":"MIT"},"node_modules/@latticexyz/world/src/Module.sol":{"keccak256":"0x652a3d6a3721a1c3f36abd7a398b16ae7d9e30ddbf54d8dc4494343dadb9f719","urls":["bzz-raw://c33d2bb71a7ae8823233fa399f778fe86e9bb078889a092fcd1ed9e7838873e5","dweb:/ipfs/QmYM6JQ4syoxQLCXC4evHVEwbsTuXgS42HZZ9Fho7J9EXr"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0x7bece0ec86fdc458054e6db0ac4316fc98882fa3ba76b2fa107d3de5382053cd","urls":["bzz-raw://d154183426723bbf133d4dc5f8d051e9521f7b7cabe63925731fa4af99379cdd","dweb:/ipfs/QmZXxPGcqknGLCwTByaZFKhqvKbrfiZkywmnh8buGTC2Mc"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a","urls":["bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518","dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417","urls":["bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb","dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0xc912f14d0f2e2e9e728a9d18e250ebe3eb2f51d0b4d79993c9d997991bbd5593","urls":["bzz-raw://29621425847a1c11205307896b04e2a6c97934dd619f23ce6774ce52520f1255","dweb:/ipfs/QmeuTe3q8U11Dqkp5tahxVWnp9Cd5ezQmRZ5vhEHtv14Eu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xf04594c29c5c5b3110453ac189a8008735753de864ab4a7dfa97ccd3ae5f4a55","urls":["bzz-raw://4a3061f72b969a294dc96c3b2e59277e762ce6571cedcc7e280412431453dde5","dweb:/ipfs/QmWB9aboakrCH9AmzGiZ1mCceh9atF4ks5ndEYFzUVbaHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf96aee478cc770cd9cd417b7939c38c9b9b075c91f3f47bdf8c6742f5591e9dc","urls":["bzz-raw://9c59c4c9a6ab3d64e2b0d7c9f3df2d330a36fc93ac2ab5e5f907fa881fbed1f8","dweb:/ipfs/QmTbd82cCtDwc8Ga1UsWAKXmFYrWU1zkbCCk1nMspqWdZu"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0xb4d323470e22b1d3f0168a44196eb09466f602b7564c75e5739c5f53a5036f97","urls":["bzz-raw://acad752208d00b731baaa1cfa192ff3981001fd030953bdc604e4f69ec2cd0b8","dweb:/ipfs/QmRFw3RgmX2CHqg7PqsP3rqVKxBVYNq5hHcFiyA2Y7iAaX"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/ICoreSystem.sol":{"keccak256":"0xf837b53eaa348da3b3650e0b7159de02d3f84897d96e487ece2f932c272dbe57","urls":["bzz-raw://fbdc52e9e519c8c6d4a00caf4de08688eb8eb34dbfc6236308f281d7cf05b51b","dweb:/ipfs/QmWnogXiA5KA6JGxCTJR5W1MNFowrH7baSAYhSXjV1xM47"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x5be1d1ee90a7a03258e8c4fce7542453332c637a51b015e0cc29151ef2792263","urls":["bzz-raw://df6d97356b2ca9d97b7593f4c0772742529fea73f1665e55a879a368b399cae0","dweb:/ipfs/QmXCs5X4Z95isKRzjP4TQjQxwiB7773tHiJWLWkjLv3SLj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0xd7e31957e7fcf056912fe16e10a0411bdb071c14c45853e7da264dfbfd6bcb62","urls":["bzz-raw://c4ce02327ac8971177685fc2655733ed3c07f5dfb72846680544a48953180aad","dweb:/ipfs/QmQMNtkeCXdZfyyvtY8vUrKh5RUbpM7HYMGrzbxZGzTEFh"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol":{"keccak256":"0xbe0b03a0379cf2dcbed5302acbcb116b263b68a1c1689b66b6df2c0414033f7c","urls":["bzz-raw://a7c3913cc938e7e0e3257194703a7cda9b8269b89ed2ccc5250d31eb07254198","dweb:/ipfs/QmctosJsQ6sVhFHG3bEAUdhEdcBVVUKtSjTG1taXome1ff"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/NamespaceOwner.sol":{"keccak256":"0xb0b7c13673a1629118cb0c3c341380fa6d4795c9b7cf6a6c73443750f1a3b34d","urls":["bzz-raw://b3c8eb44785f61c0470273cac40a228ae458b74f48d2bff8faf8915861fc49ac","dweb:/ipfs/QmUF52hgGCL9TMyTQqrxGVharwfFgKNsCpD3VNqfbhid9X"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/ResourceAccess.sol":{"keccak256":"0xe2a4e6a75ffda6971c16e9218a0f076d5b89572d37780cd4c2375a2de683fd60","urls":["bzz-raw://f04dbdf5295c0ddbda4ba0eb5fdebd84dce2ff3fe86d34681f71522bcb0e6e93","dweb:/ipfs/QmUMkPg1vhSz2zVweN5bqtWbUCj3UQKZPgYfBkQ3QGS7gF"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/SystemRegistry.sol":{"keccak256":"0x8318ead6bf21b8f1e9f231d73634034511d74c1a979246df9f9cda8f349b644d","urls":["bzz-raw://b705a942046bb24fdbf0a5f4b365e33ab724d26bc158e7458ef5f262f72b5bae","dweb:/ipfs/Qme63b3DKKizKumysUGVFH8Q9h6cHnHBFM2Kdsxh2p6SWN"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/tables/Systems.sol":{"keccak256":"0x3bf40b7e71a1953f21b447975ec1a850994a250325fdb88489d24175cf8440d9","urls":["bzz-raw://7fc1d4ce3096dfbd5510d2558d6fcae01ede446032ae232bd3e8656071e21ef1","dweb:/ipfs/QmNSmK5Mt7tt5isSuo216vVnn6rHBprYjz9Sdodf8YRPAy"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0x07faffa7dc4a2adc4f9bfe93d5a59a7dd89241d360996537608e38f61c2d0588","urls":["bzz-raw://b96d4ce331b257a24de2f18503a11b986ed32d218810db9d5e3e7eddc17c2218","dweb:/ipfs/Qme7Cw4RN1eaFWt2j3hk6ZMB7GWUfMY5oyZKYfMvAVxdBc"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/core/types.sol":{"keccak256":"0x256b3269e1e7eb6c8b6e26432bbe6799b4d45a88ef1b0e795ea71e604cec3a8a","urls":["bzz-raw://99bf6320ce9671ed74e7352b4e6c462d741ca9a894c48b526e7d8513308fa6b3","dweb:/ipfs/QmRFJcWFMDRkg7soJ4r4MrqacKmj16vUEMFEGWJuvFi4vJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55","urls":["bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df","dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746","urls":["bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2","dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9"],"license":"MIT"},"src/modules/erc20-puppet/ERC20Module.sol":{"keccak256":"0xd228562b1974e15d04903262356d5e472001997d8f85f7ee82ac94bc55c2d453","urls":["bzz-raw://792dcc71b19aceb3da51c3a3ed14976b01555e12719e7b53f39823a7ab13d4e6","dweb:/ipfs/QmYJDNxECGAMUCPKLiVSvz61a6sdXSPt3iK1UwzpkQpaoR"],"license":"MIT"},"src/modules/erc20-puppet/ERC20System.sol":{"keccak256":"0xb84141880fce305b424d3aaa48c7c813f5b2cf8b6140781917ae59b2a2dde154","urls":["bzz-raw://fc6168e5757f5383c7f5113d25e9c8f61b482c103dd72c0409e6c53e0b008d85","dweb:/ipfs/QmSF74y8miTyvz1SvgXsxZSmnTBUcspqfc5HQzQB2CfVot"],"license":"MIT"},"src/modules/erc20-puppet/IERC20.sol":{"keccak256":"0x9526a245dd9b2527be8ce0304869de8b6b3fa5ce5c4a9878ae4c164eb048b75a","urls":["bzz-raw://7bf0ce8ec02dfbded17da925a23e8ee7c9dc99ad4c42a1d3a3f6954ee363d2a9","dweb:/ipfs/QmWSjpZDkdvvemfpPa7zvHbGHp15xeeAQDNPUvyepPcdvS"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Errors.sol":{"keccak256":"0xe9614a529c1886f58a9346c5e23d588729b8358876cdaaa1e02c05aedb49d1e3","urls":["bzz-raw://d6da79a2b8813b856be2532bf2a4108703bc438a0d899e72a13113e624e3cf6b","dweb:/ipfs/QmXm41JU4yapHaDDjuExTKgpX2FdDNmyDQgvGwK7Qv9PE6"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Events.sol":{"keccak256":"0x22b66b1bc5609d9be78150221ff0ecc85fe22c39dad6ac9a02aef4fc7347296d","urls":["bzz-raw://13bfceb7a6e7869f16cf9f3046308b834b0d64bffcd55828cd12edab0efa8e5f","dweb:/ipfs/QmVPXYHx9MszicYsovZrwmafe1zv9amAuX4qpvzYdcufj5"],"license":"MIT"},"src/modules/erc20-puppet/IERC20Mintable.sol":{"keccak256":"0x1f17e23ada0ab60edb2d70322f6317832167ab261825fc9cc8c22fed4fdf167f","urls":["bzz-raw://66f4ed9a5449dea5585a91c846bfd25a4af400e86d55d3646177a147d3f7d205","dweb:/ipfs/Qmc2Yxm9HEvRepmNdgRxN1zvvq8SxbDfJ5zA8WorooiH6E"],"license":"MIT"},"src/modules/erc20-puppet/constants.sol":{"keccak256":"0xbc3dceef68daf66c30b51387398268598b85442f85b5d6a2100a882518036889","urls":["bzz-raw://085db7a1d6d673b76b5a66c3da6828ba45e104cf64a36707d671f21710cf1c7b","dweb:/ipfs/QmVsPmdFTCZnBckz2RLSQZ43mK3LUBDu26WRHtiXTs4fsk"],"license":"MIT"},"src/modules/erc20-puppet/tables/Allowances.sol":{"keccak256":"0x701b2f518f8702cb41c924c4ac4bd64a5fe2ad470a7639f1163428bd83305b74","urls":["bzz-raw://41844112f540ef1a0e15a578810bb5b7f1cfb2036ddd4867bcba7e453b1c3768","dweb:/ipfs/QmQnLcXDE3T9mCTJbGVp6CTjNgXbEcWBa92hiGtitahszo"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Metadata.sol":{"keccak256":"0x17618ef023cb4d1fa9e53b183bc0e796b3042ca0dab69544e2044997e8f71253","urls":["bzz-raw://103799676aa6d5fbe321d6fdd83de10f8ba670fc98b2cf62b40eaae07f9abbee","dweb:/ipfs/QmNs9JYUd4ThSnFMwFHHXoAinCGbBSPMvH2bz4tUFTfQ51"],"license":"MIT"},"src/modules/erc20-puppet/tables/ERC20Registry.sol":{"keccak256":"0xd84e88798b32ca0a8d5321b832262f4aaf74fe2cb28a0bb1073d17f4fe3b649e","urls":["bzz-raw://ac87a8c584663f797aaedfa76fccf0641e1db326e276a602746147eb84419ab7","dweb:/ipfs/Qmdjcr9mEoZ5RDDyaHjZcysaimsocLmDmPiRXxD3YtbiEM"],"license":"MIT"},"src/modules/erc20-puppet/tables/TotalSupply.sol":{"keccak256":"0xebbf33ab9020c92e18035eea0992ad2bd058735d1c5b14e381c79e917043e385","urls":["bzz-raw://26de448ed8a278775618b215248ac0cb603f6828efc0f562f6a7e3460e6c8a7b","dweb:/ipfs/Qmcd3gJAvDCrWRQK3fT5yhXRN17c5suJBkyJzRdAQ6Xbn9"],"license":"MIT"},"src/modules/erc20-puppet/utils.sol":{"keccak256":"0x745e5260697e8c0f962c8d72fadeb4e47fc59e57c26f67f4f3b94fc118b19ce4","urls":["bzz-raw://3282e8b0947abd80491027e7fc347466b5e0bf737148001cdd492de45c0aa14e","dweb:/ipfs/QmNx7zvfz8ThSLdypvBeJUFCpTBKJnRCKrYZBaqAbac8nN"],"license":"MIT"},"src/modules/puppet/Puppet.sol":{"keccak256":"0x8933512836ec527a90f1fd44cf01870b302cd5f080d1dc9f64ea11c41e46d2ab","urls":["bzz-raw://854b7887821c26da985de13e8fb476bd8bd52c411284793789d19d34d9112f3b","dweb:/ipfs/QmcHweSL5z6Mwro4dm4sLnzy7WmzdZud5yW7KQ36mnZTYD"],"license":"MIT"},"src/modules/puppet/PuppetDelegationControl.sol":{"keccak256":"0x8ba3488fee9e5503fa77b39609cfa2eed78be87636ada50e99094b0edc5a79e0","urls":["bzz-raw://08214be4e0315011bb8c675c955f560865687d9129be342ab420bbb5d123f37b","dweb:/ipfs/QmXFbsptKuD6fxKhhb7FatDBRE4seDnmefNB2WG6MEHHmW"],"license":"MIT"},"src/modules/puppet/PuppetFactorySystem.sol":{"keccak256":"0x47fc8ab186eba9b965c8cde4ff814eb9973302cbe1de6ee96f4539b62278fd85","urls":["bzz-raw://04eb1f7b3d964cefef88285546dbcbdc4f1c4e03d2364d37cdda5c79f9d9bb5a","dweb:/ipfs/QmddEmBYqWtnd63FCZgnHz2ukk1ZFTwLv2bMkVYwsXTG5t"],"license":"MIT"},"src/modules/puppet/PuppetMaster.sol":{"keccak256":"0x7f94270573d344a1aea188e3920acab0f6c3befe9e7f27a1759df091f73db9e5","urls":["bzz-raw://fc35076fb222a6e77a6968ef62856db69c4bb757f83f9849fe6abd8bb983002f","dweb:/ipfs/QmVKRXYS1Xj1ckMZg6i9XPp8LbE4BXR8GL2XBfiFvnPnk9"],"license":"MIT"},"src/modules/puppet/constants.sol":{"keccak256":"0xb5379ef41cc6ab6a27bc8bee21f73094ecccd7af0b54e61bf7180b04dd828207","urls":["bzz-raw://7edb00d3c48110499790cc93573b3d4e7626a7d56c7243a57d0cbe2b1b86d449","dweb:/ipfs/QmU9c1n3vftuRM4WjSmBhodZvSKwfovvzakdre2AYQTrur"],"license":"MIT"},"src/modules/puppet/createPuppet.sol":{"keccak256":"0x3ec80fa8b953772490089a2ec073109f4e06bdcb12ddc4f6501384340f64232e","urls":["bzz-raw://93ecfe683e78efc41c21ed5be647cb4654ccdbf38f8ef4358067f87b39dc997c","dweb:/ipfs/QmTrt6U6BnykBBJqVmHQkgAxEcqZ6X5LHDQZgWVGVPR1X3"],"license":"MIT"},"src/modules/puppet/tables/PuppetRegistry.sol":{"keccak256":"0xe746e9170bee8f229554971e2ebdeda0ac4b4d342f92c711a9c22882c0ebe4f4","urls":["bzz-raw://8e8ba2b16545929f480da8b5d6980fe5f92bb87b7b09178b5236aeede72a7436","dweb:/ipfs/QmUT9HGrXJB1jiyFW14kqGGGb8v86w2UscWuzWWfcmPTuE"],"license":"MIT"},"src/modules/puppet/utils.sol":{"keccak256":"0x725bf79655d814b0b04e2f64a8eb3a01dbd87cebf6c9674fb656363cc72c6e66","urls":["bzz-raw://6efcc323f7cdf8e0d284dafe714f9dd922d63c747e9a34d6e71473943b50805c","dweb:/ipfs/QmcxA7uqyhAV7m3svQstVhsjvLYbcgUq1nQCk7vqACAsQf"],"license":"MIT"},"src/modules/tokens/tables/Balances.sol":{"keccak256":"0x1a5efec938f8f444e25499f55c11782e2f8425ecb4bb7642b3e4d89ef5c94283","urls":["bzz-raw://b8cc1696ae88061b5b469111ee6bd4c25919756d3c85e2830a92dd7a344bda8d","dweb:/ipfs/QmNZKrU7NkRHmvvm98kaLYFusEmH3e7sJdCwciuUWzCCxe"],"license":"MIT"},"src/utils/AccessControlLib.sol":{"keccak256":"0xb31878bda3f249c941719f6aa743bc739701418ed3effd2b5e6b4f28219e3f88","urls":["bzz-raw://a56bea3221f0663c35375beea4803b0d4ebc7e004828b89ef72c0cfec8e009e0","dweb:/ipfs/QmPNZig8c2ou4uZFMjotG1CGT3ZcTU2aCt3C2RTSLkx3w8"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/modules/erc20-puppet/ERC20Module.sol","id":121869,"exportedSymbols":{"Allowances":[123839],"Balances":[156591],"ERC20Metadata":[125908],"ERC20MetadataData":[123885],"ERC20Module":[121820],"ERC20ModuleRegistrationLibrary":[121868],"ERC20Registry":[126666],"ERC20System":[122506],"ERC20_REGISTRY_TABLE_ID":[122741],"IBaseWorld":[96356],"InstalledModules":[98969],"MODULE_NAME":[122691],"MODULE_NAMESPACE":[122694],"MODULE_NAMESPACE_ID":[122708],"Module":[94903],"PUPPET_MODULE_NAME":[150956],"Puppet":[150648],"ResourceId":[82352],"ResourceIds":[87847],"WorldResourceIdLib":[96164],"_allowancesTableId":[127309],"_balancesTableId":[127325],"_erc20SystemId":[127373],"_metadataTableId":[127357],"createPuppet":[151083]},"nodeType":"SourceUnit","src":"32:3834:228","nodes":[{"id":121585,"nodeType":"PragmaDirective","src":"32:25:228","nodes":[],"literals":["solidity",">=","0.8",".21"]},{"id":121587,"nodeType":"ImportDirective","src":"59:83:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol","file":"@latticexyz/store/src/codegen/tables/ResourceIds.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":87858,"symbolAliases":[{"foreign":{"id":121586,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"68:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121589,"nodeType":"ImportDirective","src":"143:66:228","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/ResourceId.sol","file":"@latticexyz/store/src/ResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":82424,"symbolAliases":[{"foreign":{"id":121588,"name":"ResourceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82352,"src":"152:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121591,"nodeType":"ImportDirective","src":"210:58:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/Module.sol","file":"@latticexyz/world/src/Module.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":94904,"symbolAliases":[{"foreign":{"id":121590,"name":"Module","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94903,"src":"219:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121593,"nodeType":"ImportDirective","src":"269:79:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/WorldResourceId.sol","file":"@latticexyz/world/src/WorldResourceId.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96286,"symbolAliases":[{"foreign":{"id":121592,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"278:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121595,"nodeType":"ImportDirective","src":"349:85:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","file":"@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":96357,"symbolAliases":[{"foreign":{"id":121594,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"358:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121597,"nodeType":"ImportDirective","src":"435:93:228","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/codegen/tables/InstalledModules.sol","file":"@latticexyz/world/src/codegen/tables/InstalledModules.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":98970,"symbolAliases":[{"foreign":{"id":121596,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"444:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121599,"nodeType":"ImportDirective","src":"530:46:228","nodes":[],"absolutePath":"src/modules/puppet/Puppet.sol","file":"../puppet/Puppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":150649,"symbolAliases":[{"foreign":{"id":121598,"name":"Puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150648,"src":"539:6:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121601,"nodeType":"ImportDirective","src":"577:58:228","nodes":[],"absolutePath":"src/modules/puppet/createPuppet.sol","file":"../puppet/createPuppet.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151084,"symbolAliases":[{"foreign":{"id":121600,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"586:12:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121603,"nodeType":"ImportDirective","src":"636:76:228","nodes":[],"absolutePath":"src/modules/puppet/constants.sol","file":"../puppet/constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":151017,"symbolAliases":[{"foreign":{"id":121602,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"645:11:228","typeDescriptions":{}},"local":"PUPPET_MODULE_NAME","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121605,"nodeType":"ImportDirective","src":"713:57:228","nodes":[],"absolutePath":"src/modules/tokens/tables/Balances.sol","file":"../tokens/tables/Balances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":156592,"symbolAliases":[{"foreign":{"id":121604,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"722:8:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121610,"nodeType":"ImportDirective","src":"772:110:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/constants.sol","file":"./constants.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122742,"symbolAliases":[{"foreign":{"id":121606,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"781:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121607,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"794:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121608,"name":"MODULE_NAMESPACE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122708,"src":"812:19:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121609,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"833:23:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121615,"nodeType":"ImportDirective","src":"883:101:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/utils.sol","file":"./utils.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":127374,"symbolAliases":[{"foreign":{"id":121611,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"892:18:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121612,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"912:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121613,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"930:16:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121614,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"948:14:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121617,"nodeType":"ImportDirective","src":"985:48:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/ERC20System.sol","file":"./ERC20System.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":122507,"symbolAliases":[{"foreign":{"id":121616,"name":"ERC20System","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122506,"src":"994:11:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121619,"nodeType":"ImportDirective","src":"1035:59:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Registry.sol","file":"./tables/ERC20Registry.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":126667,"symbolAliases":[{"foreign":{"id":121618,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"1044:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121621,"nodeType":"ImportDirective","src":"1095:53:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/Allowances.sol","file":"./tables/Allowances.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":123840,"symbolAliases":[{"foreign":{"id":121620,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"1104:10:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121624,"nodeType":"ImportDirective","src":"1149:78:228","nodes":[],"absolutePath":"src/modules/erc20-puppet/tables/ERC20Metadata.sol","file":"./tables/ERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":121869,"sourceUnit":125909,"symbolAliases":[{"foreign":{"id":121622,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"1158:13:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":121623,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"1173:17:228","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121820,"nodeType":"ContractDefinition","src":"1229:2128:228","nodes":[{"id":121630,"nodeType":"ErrorDefinition","src":"1264:54:228","nodes":[],"errorSelector":"0f31c63c","name":"ERC20Module_InvalidNamespace","nameLocation":"1270:28:228","parameters":{"id":121629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121628,"mutability":"mutable","name":"namespace","nameLocation":"1307:9:228","nodeType":"VariableDeclaration","scope":121630,"src":"1299:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121627,"name":"bytes14","nodeType":"ElementaryTypeName","src":"1299:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"1298:19:228"}},{"id":121639,"nodeType":"VariableDeclaration","src":"1322:85:228","nodes":[],"constant":false,"mutability":"immutable","name":"registrationLibrary","nameLocation":"1340:19:228","scope":121820,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121631,"name":"address","nodeType":"ElementaryTypeName","src":"1322:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1370:34:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"function () returns (contract ERC20ModuleRegistrationLibrary)"},"typeName":{"id":121635,"nodeType":"UserDefinedTypeName","pathNode":{"id":121634,"name":"ERC20ModuleRegistrationLibrary","nameLocations":["1374:30:228"],"nodeType":"IdentifierPath","referencedDeclaration":121868,"src":"1374:30:228"},"referencedDeclaration":121868,"src":"1374:30:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}},"id":121637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1370:36:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20ModuleRegistrationLibrary_$121868","typeString":"contract ERC20ModuleRegistrationLibrary"}],"id":121633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1362:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121632,"name":"address","nodeType":"ElementaryTypeName","src":"1362:7:228","typeDescriptions":{}}},"id":121638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":121648,"nodeType":"FunctionDefinition","src":"1412:87:228","nodes":[],"body":{"id":121647,"nodeType":"Block","src":"1470:29:228","nodes":[],"statements":[{"expression":{"id":121645,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1483:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"functionReturnParameters":121644,"id":121646,"nodeType":"Return","src":"1476:18:228"}]},"baseFunctions":[94638],"functionSelector":"17d7de7c","implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"1421:7:228","overrides":{"id":121641,"nodeType":"OverrideSpecifier","overrides":[],"src":"1443:8:228"},"parameters":{"id":121640,"nodeType":"ParameterList","parameters":[],"src":"1428:2:228"},"returnParameters":{"id":121644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121648,"src":"1461:7:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":121642,"name":"bytes16","nodeType":"ElementaryTypeName","src":"1461:7:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"1460:9:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":121680,"nodeType":"FunctionDefinition","src":"1503:273:228","nodes":[],"body":{"id":121679,"nodeType":"Block","src":"1549:227:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121653,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1624:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"arguments":[{"hexValue":"30","id":121657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1664:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1654:9:228","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":121655,"name":"bytes","nodeType":"ElementaryTypeName","src":"1658:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":121658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121654,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1644:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:23:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121651,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1603:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1620:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1603:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:65:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":121663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1680:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1672:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121661,"name":"address","nodeType":"ElementaryTypeName","src":"1672:7:228","typeDescriptions":{}}},"id":121664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1603:79:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121678,"nodeType":"IfStatement","src":"1599:173:228","trueBody":{"id":121677,"nodeType":"Block","src":"1684:88:228","statements":[{"errorCall":{"arguments":[{"arguments":[{"arguments":[{"id":121672,"name":"PUPPET_MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":150956,"src":"1744:18:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":121670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1731:5:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":121669,"name":"bytes","nodeType":"ElementaryTypeName","src":"1731:5:228","typeDescriptions":{}}},"id":121671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1737:6:228","memberName":"concat","nodeType":"MemberAccess","src":"1731:12:228","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1731:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1724:6:228","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":121667,"name":"string","nodeType":"ElementaryTypeName","src":"1724:6:228","typeDescriptions":{}}},"id":121674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1724:40:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":121666,"name":"Module_MissingDependency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94632,"src":"1699:24:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":121675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:66:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121676,"nodeType":"RevertStatement","src":"1692:73:228"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_requireDependencies","nameLocation":"1512:20:228","parameters":{"id":121649,"nodeType":"ParameterList","parameters":[],"src":"1532:2:228"},"returnParameters":{"id":121650,"nodeType":"ParameterList","parameters":[],"src":"1549:0:228"},"scope":121820,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":121810,"nodeType":"FunctionDefinition","src":"1780:1474:228","nodes":[],"body":{"id":121809,"nodeType":"Block","src":"1823:1431:228","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121687,"name":"MODULE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122691,"src":"1920:11:228","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},{"arguments":[{"id":121689,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"1943:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121688,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1933:9:228","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":121690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:15:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":121685,"name":"InstalledModules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98969,"src":"1899:16:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstalledModules_$98969_$","typeString":"type(library InstalledModules)"}},"id":121686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:3:228","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":98537,"src":"1899:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes16_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes16,bytes32) view returns (address)"}},"id":121691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":121694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1961:1:228","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":121693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1953:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121692,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:228","typeDescriptions":{}}},"id":121695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1953:10:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1899:64:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121701,"nodeType":"IfStatement","src":"1895:117:228","trueBody":{"id":121700,"nodeType":"Block","src":"1965:47:228","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121697,"name":"Module_AlreadyInstalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94628,"src":"1980:23:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121699,"nodeType":"RevertStatement","src":"1973:32:228"}]}},{"assignments":[121703,121706],"declarations":[{"constant":false,"id":121703,"mutability":"mutable","name":"namespace","nameLocation":"2047:9:228","nodeType":"VariableDeclaration","scope":121809,"src":"2039:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121702,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2039:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"},{"constant":false,"id":121706,"mutability":"mutable","name":"metadata","nameLocation":"2083:8:228","nodeType":"VariableDeclaration","scope":121809,"src":"2058:33:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData"},"typeName":{"id":121705,"nodeType":"UserDefinedTypeName","pathNode":{"id":121704,"name":"ERC20MetadataData","nameLocations":["2058:17:228"],"nodeType":"IdentifierPath","referencedDeclaration":123885,"src":"2058:17:228"},"referencedDeclaration":123885,"src":"2058:17:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_storage_ptr","typeString":"struct ERC20MetadataData"}},"visibility":"internal"}],"id":121715,"initialValue":{"arguments":[{"id":121709,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121682,"src":"2106:4:228","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":121711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2113:7:228","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes14_$","typeString":"type(bytes14)"},"typeName":{"id":121710,"name":"bytes14","nodeType":"ElementaryTypeName","src":"2113:7:228","typeDescriptions":{}}},{"id":121712,"name":"ERC20MetadataData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123885,"src":"2122:17:228","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$","typeString":"type(struct ERC20MetadataData storage pointer)"}}],"id":121713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2112:28:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes14_$_$_t_type$_t_struct$_ERC20MetadataData_$123885_storage_ptr_$_$","typeString":"tuple(type(bytes14),type(struct ERC20MetadataData storage pointer))"}],"expression":{"id":121707,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2095:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2099:6:228","memberName":"decode","nodeType":"MemberAccess","src":"2095:10:228","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":121714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2095:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes14_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$","typeString":"tuple(bytes14,struct ERC20MetadataData memory)"}},"nodeType":"VariableDeclarationStatement","src":"2038:103:228"},{"condition":{"commonType":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"id":121718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121716,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2214:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":121717,"name":"MODULE_NAMESPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122694,"src":"2227:16:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"src":"2214:29:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121724,"nodeType":"IfStatement","src":"2210:96:228","trueBody":{"id":121723,"nodeType":"Block","src":"2245:61:228","statements":[{"errorCall":{"arguments":[{"id":121720,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2289:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121719,"name":"ERC20Module_InvalidNamespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121630,"src":"2260:28:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes14_$returns$__$","typeString":"function (bytes14) pure"}},"id":121721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2260:39:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121722,"nodeType":"RevertStatement","src":"2253:46:228"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":121725,"name":"_requireDependencies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121680,"src":"2340:20:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":121726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:22:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121727,"nodeType":"ExpressionStatement","src":"2340:22:228"},{"assignments":[121730],"declarations":[{"constant":false,"id":121730,"mutability":"mutable","name":"world","nameLocation":"2424:5:228","nodeType":"VariableDeclaration","scope":121809,"src":"2413:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121729,"nodeType":"UserDefinedTypeName","pathNode":{"id":121728,"name":"IBaseWorld","nameLocations":["2413:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"2413:10:228"},"referencedDeclaration":96356,"src":"2413:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"}],"id":121735,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":121732,"name":"_world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95789,"src":"2443:6:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:8:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121731,"name":"IBaseWorld","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96356,"src":"2432:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWorld_$96356_$","typeString":"type(contract IBaseWorld)"}},"id":121734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2432:20:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"nodeType":"VariableDeclarationStatement","src":"2413:39:228"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":121741,"name":"ERC20ModuleRegistrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121868,"src":"2506:30:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20ModuleRegistrationLibrary_$121868_$","typeString":"type(contract ERC20ModuleRegistrationLibrary)"}},"id":121742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2537:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":121867,"src":"2506:39:228","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"}},{"components":[{"id":121743,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2548:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121744,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2555:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"id":121745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2547:18:228","typeDescriptions":{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$returns$__$","typeString":"function ERC20ModuleRegistrationLibrary.register(contract IBaseWorld,bytes14)"},{"typeIdentifier":"t_tuple$_t_contract$_IBaseWorld_$96356_$_t_bytes14_$","typeString":"tuple(contract IBaseWorld,bytes14)"}],"expression":{"id":121739,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2491:3:228","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:10:228","memberName":"encodeCall","nodeType":"MemberAccess","src":"2491:14:228","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":121746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2491:75:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":121736,"name":"registrationLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121639,"src":"2458:19:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":121738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2478:12:228","memberName":"delegatecall","nodeType":"MemberAccess","src":"2458:32:228","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":121747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:109:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":121748,"nodeType":"ExpressionStatement","src":"2458:109:228"},{"expression":{"arguments":[{"arguments":[{"id":121753,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2640:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121752,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"2623:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121755,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121706,"src":"2652:8:228","typeDescriptions":{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_struct$_ERC20MetadataData_$123885_memory_ptr","typeString":"struct ERC20MetadataData memory"}],"expression":{"id":121749,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"2605:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2619:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":125535,"src":"2605:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_struct$_ERC20MetadataData_$123885_memory_ptr_$returns$__$","typeString":"function (ResourceId,struct ERC20MetadataData memory)"}},"id":121756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2605:56:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121757,"nodeType":"ExpressionStatement","src":"2605:56:228"},{"assignments":[121760],"declarations":[{"constant":false,"id":121760,"mutability":"mutable","name":"erc20SystemId","nameLocation":"2724:13:228","nodeType":"VariableDeclaration","scope":121809,"src":"2713:24:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121759,"nodeType":"UserDefinedTypeName","pathNode":{"id":121758,"name":"ResourceId","nameLocations":["2713:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2713:10:228"},"referencedDeclaration":82352,"src":"2713:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121764,"initialValue":{"arguments":[{"id":121762,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2755:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121761,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"2740:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2740:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2713:52:228"},{"assignments":[121766],"declarations":[{"constant":false,"id":121766,"mutability":"mutable","name":"puppet","nameLocation":"2779:6:228","nodeType":"VariableDeclaration","scope":121809,"src":"2771:14:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121765,"name":"address","nodeType":"ElementaryTypeName","src":"2771:7:228","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":121771,"initialValue":{"arguments":[{"id":121768,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2801:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},{"id":121769,"name":"erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121760,"src":"2808:13:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"id":121767,"name":"createPuppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151083,"src":"2788:12:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IBaseWorld_$96356_$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_address_$","typeString":"function (contract IBaseWorld,ResourceId) returns (address)"}},"id":121770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2788:34:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2771:51:228"},{"assignments":[121774],"declarations":[{"constant":false,"id":121774,"mutability":"mutable","name":"namespaceId","nameLocation":"2897:11:228","nodeType":"VariableDeclaration","scope":121809,"src":"2886:22:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},"typeName":{"id":121773,"nodeType":"UserDefinedTypeName","pathNode":{"id":121772,"name":"ResourceId","nameLocations":["2886:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":82352,"src":"2886:10:228"},"referencedDeclaration":82352,"src":"2886:10:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"visibility":"internal"}],"id":121779,"initialValue":{"arguments":[{"id":121777,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121703,"src":"2946:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":121775,"name":"WorldResourceIdLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96164,"src":"2911:18:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldResourceIdLib_$96164_$","typeString":"type(library WorldResourceIdLib)"}},"id":121776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2930:15:228","memberName":"encodeNamespace","nodeType":"MemberAccess","referencedDeclaration":96119,"src":"2911:34:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2911:45:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},"nodeType":"VariableDeclarationStatement","src":"2886:70:228"},{"expression":{"arguments":[{"id":121783,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"2986:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121784,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":95767,"src":"2999:10:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":121785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2999:12:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121780,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121730,"src":"2962:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2968:17:228","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":180199,"src":"2962:23:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,address) external"}},"id":121786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2962:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121787,"nodeType":"ExpressionStatement","src":"2962:50:228"},{"condition":{"id":121792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3070:47:228","subExpression":{"arguments":[{"id":121790,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3093:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121788,"name":"ResourceIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87847,"src":"3071:11:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ResourceIds_$87847_$","typeString":"type(library ResourceIds)"}},"id":121789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3083:9:228","memberName":"getExists","nodeType":"MemberAccess","referencedDeclaration":87367,"src":"3071:21:228","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_ResourceId_$82352_$returns$_t_bool_$","typeString":"function (ResourceId) view returns (bool)"}},"id":121791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3071:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121800,"nodeType":"IfStatement","src":"3066:115:228","trueBody":{"id":121799,"nodeType":"Block","src":"3119:62:228","statements":[{"expression":{"arguments":[{"id":121796,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3150:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121793,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3127:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3141:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":126090,"src":"3127:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3127:47:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121798,"nodeType":"ExpressionStatement","src":"3127:47:228"}]}},{"expression":{"arguments":[{"id":121804,"name":"ERC20_REGISTRY_TABLE_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122741,"src":"3204:23:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121805,"name":"namespaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121774,"src":"3229:11:228","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"id":121806,"name":"puppet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121766,"src":"3242:6:228","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121801,"name":"ERC20Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126666,"src":"3186:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Registry_$126666_$","typeString":"type(library ERC20Registry)"}},"id":121803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3200:3:228","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":126462,"src":"3186:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_userDefinedValueType$_ResourceId_$82352_$_t_address_$returns$__$","typeString":"function (ResourceId,ResourceId,address)"}},"id":121807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3186:63:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121808,"nodeType":"ExpressionStatement","src":"3186:63:228"}]},"baseFunctions":[94650],"functionSelector":"13861fb5","implemented":true,"kind":"function","modifiers":[],"name":"install","nameLocation":"1789:7:228","parameters":{"id":121683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121682,"mutability":"mutable","name":"args","nameLocation":"1810:4:228","nodeType":"VariableDeclaration","scope":121810,"src":"1797:17:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121681,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1796:19:228"},"returnParameters":{"id":121684,"nodeType":"ParameterList","parameters":[],"src":"1823:0:228"},"scope":121820,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":121819,"nodeType":"FunctionDefinition","src":"3258:97:228","nodes":[],"body":{"id":121818,"nodeType":"Block","src":"3305:50:228","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":121815,"name":"Module_RootInstallNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94624,"src":"3318:30:228","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":121816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3318:32:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121817,"nodeType":"RevertStatement","src":"3311:39:228"}]},"baseFunctions":[94644],"functionSelector":"7c5b0335","implemented":true,"kind":"function","modifiers":[],"name":"installRoot","nameLocation":"3267:11:228","parameters":{"id":121813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121819,"src":"3279:12:228","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121811,"name":"bytes","nodeType":"ElementaryTypeName","src":"3279:5:228","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3278:14:228"},"returnParameters":{"id":121814,"nodeType":"ParameterList","parameters":[],"src":"3305:0:228"},"scope":121820,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":121625,"name":"Module","nameLocations":["1253:6:228"],"nodeType":"IdentifierPath","referencedDeclaration":94903,"src":"1253:6:228"},"id":121626,"nodeType":"InheritanceSpecifier","src":"1253:6:228"}],"canonicalName":"ERC20Module","contractDependencies":[121868],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121820,94903,95807,177303,94651,177260],"name":"ERC20Module","nameLocation":"1238:11:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928,94624,94626,94628,94632,121630],"usedEvents":[83227,83240]},{"id":121868,"nodeType":"ContractDefinition","src":"3359:506:228","nodes":[{"id":121867,"nodeType":"FunctionDefinition","src":"3491:372:228","nodes":[],"body":{"id":121866,"nodeType":"Block","src":"3553:310:228","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":121833,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3625:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121832,"name":"_allowancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127309,"src":"3606:18:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3606:29:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121829,"name":"Allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123839,"src":"3586:10:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Allowances_$123839_$","typeString":"type(library Allowances)"}},"id":121831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3597:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":123021,"src":"3586:19:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3586:50:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121836,"nodeType":"ExpressionStatement","src":"3586:50:228"},{"expression":{"arguments":[{"arguments":[{"id":121841,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3677:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121840,"name":"_balancesTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127325,"src":"3660:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3660:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121837,"name":"Balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156591,"src":"3642:8:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Balances_$156591_$","typeString":"type(library Balances)"}},"id":121839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3651:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":155960,"src":"3642:17:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:46:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121844,"nodeType":"ExpressionStatement","src":"3642:46:228"},{"expression":{"arguments":[{"arguments":[{"id":121849,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3734:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121848,"name":"_metadataTableId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127357,"src":"3717:16:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3717:27:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}],"expression":{"id":121845,"name":"ERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125908,"src":"3694:13:228","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20Metadata_$125908_$","typeString":"type(library ERC20Metadata)"}},"id":121847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3708:8:228","memberName":"register","nodeType":"MemberAccess","referencedDeclaration":124039,"src":"3694:22:228","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$returns$__$","typeString":"function (ResourceId)"}},"id":121851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:51:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121852,"nodeType":"ExpressionStatement","src":"3694:51:228"},{"expression":{"arguments":[{"arguments":[{"id":121857,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121826,"src":"3822:9:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"id":121856,"name":"_erc20SystemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127373,"src":"3807:14:228","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes14_$returns$_t_userDefinedValueType$_ResourceId_$82352_$","typeString":"function (bytes14) pure returns (ResourceId)"}},"id":121858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:25:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3834:15:228","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ERC20System_$122506_$","typeString":"function () returns (contract ERC20System)"},"typeName":{"id":121860,"nodeType":"UserDefinedTypeName","pathNode":{"id":121859,"name":"ERC20System","nameLocations":["3838:11:228"],"nodeType":"IdentifierPath","referencedDeclaration":122506,"src":"3838:11:228"},"referencedDeclaration":122506,"src":"3838:11:228","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}}},"id":121862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3834:17:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"}},{"hexValue":"74727565","id":121863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3853:4:228","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ResourceId_$82352","typeString":"ResourceId"},{"typeIdentifier":"t_contract$_ERC20System_$122506","typeString":"contract ERC20System"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":121853,"name":"world","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121824,"src":"3786:5:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"id":121855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:14:228","memberName":"registerSystem","nodeType":"MemberAccess","referencedDeclaration":180318,"src":"3786:20:228","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_userDefinedValueType$_ResourceId_$82352_$_t_contract$_WorldContextConsumer_$95807_$_t_bool_$returns$__$","typeString":"function (ResourceId,contract WorldContextConsumer,bool) external"}},"id":121864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3786:72:228","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121865,"nodeType":"ExpressionStatement","src":"3786:72:228"}]},"documentation":{"id":121821,"nodeType":"StructuredDocumentation","src":"3403:85:228","text":" Register systems and tables for a new ERC20 token in a given namespace"},"functionSelector":"472466c2","implemented":true,"kind":"function","modifiers":[],"name":"register","nameLocation":"3500:8:228","parameters":{"id":121827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121824,"mutability":"mutable","name":"world","nameLocation":"3520:5:228","nodeType":"VariableDeclaration","scope":121867,"src":"3509:16:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"},"typeName":{"id":121823,"nodeType":"UserDefinedTypeName","pathNode":{"id":121822,"name":"IBaseWorld","nameLocations":["3509:10:228"],"nodeType":"IdentifierPath","referencedDeclaration":96356,"src":"3509:10:228"},"referencedDeclaration":96356,"src":"3509:10:228","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWorld_$96356","typeString":"contract IBaseWorld"}},"visibility":"internal"},{"constant":false,"id":121826,"mutability":"mutable","name":"namespace","nameLocation":"3535:9:228","nodeType":"VariableDeclaration","scope":121867,"src":"3527:17:228","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":121825,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3527:7:228","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3508:37:228"},"returnParameters":{"id":121828,"nodeType":"ParameterList","parameters":[],"src":"3553:0:228"},"scope":121868,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ERC20ModuleRegistrationLibrary","contractDependencies":[122506],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[121868],"name":"ERC20ModuleRegistrationLibrary","nameLocation":"3368:30:228","scope":121869,"usedErrors":[80787,80789,80791,81420,81436,81454,81460,81466,82445,82448,82928],"usedEvents":[83227,83240]}],"license":"MIT"},"id":228}