1 line
214 KiB
JSON
1 line
214 KiB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"},{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"tokens_","type":"address[]","internalType":"contract IERC20[]"},{"name":"bases_","type":"uint256[]","internalType":"uint256[]"},{"name":"kappa_","type":"int128","internalType":"int128"},{"name":"swapFeePpm_","type":"uint256","internalType":"uint256"},{"name":"flashFeePpm_","type":"uint256","internalType":"uint256"},{"name":"protocolFeePpm_","type":"uint256","internalType":"uint256"},{"name":"protocolFeeAddress_","type":"address","internalType":"address"},{"name":"wrapperToken_","type":"address","internalType":"contract NativeWrapper"},{"name":"swapImpl_","type":"address","internalType":"contract PartyPoolSwapImpl"},{"name":"mintImpl_","type":"address","internalType":"contract PartyPoolMintImpl"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"LMSR","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct LMSRStabilized.State","components":[{"name":"nAssets","type":"uint256","internalType":"uint256"},{"name":"kappa","type":"int128","internalType":"int128"},{"name":"qInternal","type":"int128[]","internalType":"int128[]"}]}],"stateMutability":"view"},{"type":"function","name":"allProtocolFeesOwed","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"allTokens","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"contract IERC20[]"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"payer","type":"address","internalType":"address"},{"name":"receiver","type":"address","internalType":"address"},{"name":"lpAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"unwrap","type":"bool","internalType":"bool"}],"outputs":[{"name":"withdrawAmounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"burnSwap","inputs":[{"name":"payer","type":"address","internalType":"address"},{"name":"receiver","type":"address","internalType":"address"},{"name":"lpAmount","type":"uint256","internalType":"uint256"},{"name":"inputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"unwrap","type":"bool","internalType":"bool"}],"outputs":[{"name":"amountOutUint","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"collectProtocolFees","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"denominators","inputs":[],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"flashFeePpm","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"flashLoan","inputs":[{"name":"receiver","type":"address","internalType":"contract IERC3156FlashBorrower"},{"name":"tokenAddr","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getToken","inputs":[{"name":"i","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"initialMint","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"lpTokens","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"lpMinted","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"kappa","inputs":[],"outputs":[{"name":"","type":"int128","internalType":"int128"}],"stateMutability":"view"},{"type":"function","name":"kill","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"killed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"payer","type":"address","internalType":"address"},{"name":"receiver","type":"address","internalType":"address"},{"name":"lpTokenAmount","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"lpMinted","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"mintImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract PartyPoolMintImpl"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"numTokens","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"protocolFeeAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"protocolFeePpm","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"payer","type":"address","internalType":"address"},{"name":"receiver","type":"address","internalType":"address"},{"name":"inputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"outputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"},{"name":"limitPrice","type":"int128","internalType":"int128"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"unwrap","type":"bool","internalType":"bool"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"swapAmounts","inputs":[{"name":"inputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"outputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"},{"name":"limitPrice","type":"int128","internalType":"int128"}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swapFeePpm","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"swapMint","inputs":[{"name":"payer","type":"address","internalType":"address"},{"name":"receiver","type":"address","internalType":"address"},{"name":"inputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"maxAmountIn","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"lpMinted","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"swapMintImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract PartyPoolSwapImpl"}],"stateMutability":"view"},{"type":"function","name":"swapToLimit","inputs":[{"name":"payer","type":"address","internalType":"address"},{"name":"receiver","type":"address","internalType":"address"},{"name":"inputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"outputTokenIndex","type":"uint256","internalType":"uint256"},{"name":"limitPrice","type":"int128","internalType":"int128"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"unwrap","type":"bool","internalType":"bool"}],"outputs":[{"name":"amountInUsed","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrapperToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract NativeWrapper"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"payer","type":"address","indexed":false,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"amounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"lpBurned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BurnSwap","inputs":[{"name":"payer","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"targetTokenIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"payoutUint","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Killed","inputs":[],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"payer","type":"address","indexed":false,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"amounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"lpMinted","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Swap","inputs":[{"name":"payer","type":"address","indexed":false,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"tokenIn","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"tokenOut","type":"address","indexed":true,"internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amountOut","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SwapMint","inputs":[{"name":"payer","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"inputTokenIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"grossTransfer","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"netInput","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"feeTaken","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6101806040523461061f5761550a8038038061001a816109fd565b9283398101906101a08183031261061f5761003481610a22565b60208201519091906001600160401b03811161061f5783610056918301610a36565b60408201516001600160401b03811161061f5784610075918401610a36565b60608301516001600160401b03811161061f5783019480601f8701121561061f578551906100aa6100a583610a87565b6109fd565b9660208884815201906020829460051b8201019083821161061f57602001915b8183106109dd5750505060808501516001600160401b03811161061f5785019080601f8301121561061f578151906101046100a583610a87565b9260208484815201906020829460051b82010192831161061f57602001905b8282106109cd5750505060a08601519081600f0b820361061f5760c08701519260e0880151946101008901519661015d6101208b01610a22565b6101408b01519b9099906001600160a01b038d168d0361061f576101608c01519b6001600160a01b038d168d0361061f5761018001519c6001600160a01b038e168e900361061f5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00556080526001600160a01b031680156109ba575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a38051906001600160401b03821161057a5760045490600182811c921680156109b0575b60208310146108d35781601f849311610962575b50602090601f83116001146108fc575f926108f1575b50508160011b915f199060031b1c1916176004555b8051906001600160401b03821161057a5760055490600182811c921680156108e7575b60208310146108d35781601f849311610897575b50602090601f8311600114610831575f92610826575b50508160011b915f199060031b1c1916176005555b60018b5111156107e1578a5182510361079c578a51906001600160401b03821161057a5768010000000000000000821161057a57600a5482600a55808310610762575b50600a5f5260205f205f5b8381106107455750509151929150506001600160401b03821161057a5768010000000000000000821161057a57600c5482600c5580831061070b575b50600c5f5260205f205f5b8381106106f7575050505060a052620f42408110156106bf5760c052620f424081101561067a5760e052620f42408110156106355780158015610623575b1561061f5761010052610120526101605261014052805190816007555f5b8281106105be57826103e181610ab4565b8051906001600160401b03821161057a5768010000000000000000821161057a57602090600e5483600e558084106105a2575b5001600e5f5260205f205f5b83811061058e5761043085610ab4565b8051906001600160401b03821161057a5768010000000000000000821161057a57602090600b5483600b5580841061055e575b500190600b5f5260205f20915f5b82811061054a57604051614a2d9081610add823960805181818161096301528181610cc60152818161245f0152612e31015260a0518181816116f1015261175d015260c05181818161058e0152818161139201528181611f64015281816123f20152612f98015260e051818181611abe01526121520152610100518181816105b4015281816107b8015281816113b9015281816117b901528181611ae70152611f8a0152610120518181816104c6015261101401526101405181818161030101526105ff01526101605181818161121501526114060152f35b600190602083519301928186015501610471565b61057490600b5f5284845f209182019101610a9e565b83610463565b634e487b7160e01b5f52604160045260245ffd5b600190602084519401938184015501610420565b6105b890600e5f5284845f209182019101610a9e565b84610414565b600181019081811161060b5782518110156105f757602060018060a01b039160051b84010151165f52600d6020528060405f20556103d0565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f80fd5b506001600160a01b03821615156103b2565b60405162461bcd60e51b815260206004820152601960248201527f506f6f6c3a2070726f746f636f6c20666565203e3d2070706d000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601660248201527f506f6f6c3a20666c61736820666565203e3d2070706d000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601060248201526f506f6f6c3a20666565203e3d2070706d60801b6044820152606490fd5b600190602084519401938184015501610374565b600c5f5261073f907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908101908401610a9e565b5f610369565b82516001600160a01b03168183015560209092019160010161032d565b600a5f52610796907fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8908101908401610a9e565b5f610322565b60405162461bcd60e51b815260206004820152601660248201527f506f6f6c3a206c656e67746873206d69736d61746368000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601360248201527f506f6f6c3a206e656564203e31206173736574000000000000000000000000006044820152606490fd5b015190505f806102ca565b60055f9081528281209350601f198516905b81811061087f5750908460019594939210610867575b505050811b016005556102df565b01515f1960f88460031b161c191690555f8080610859565b92936020600181928786015181550195019301610843565b6108c39060055f5260205f20601f850160051c810191602086106108c9575b601f0160051c0190610a9e565b5f6102b4565b90915081906108b6565b634e487b7160e01b5f52602260045260245ffd5b91607f16916102a0565b015190505f80610268565b60045f9081528281209350601f198516905b81811061094a5750908460019594939210610932575b505050811b0160045561027d565b01515f1960f88460031b161c191690555f8080610924565b9293602060018192878601518155019501930161090e565b60045f526109aa907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f850160051c810191602086106108c957601f0160051c0190610a9e565b5f610252565b91607f169161023e565b631e4fbdf760e01b5f525f60045260245ffd5b8151815260209182019101610123565b82516001600160a01b038116810361061f578152602092830192016100ca565b6040519190601f01601f191682016001600160401b0381118382101761057a57604052565b51906001600160a01b038216820361061f57565b81601f8201121561061f578051906001600160401b03821161057a57610a65601f8301601f19166020016109fd565b928284526020838301011161061f57815f9260208093018386015e8301015290565b6001600160401b03811161057a5760051b60200190565b818110610aa9575050565b5f8155600101610a9e565b90610ac16100a583610a87565b8281528092610ad2601f1991610a87565b019060203691013756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c908163017504b61461271757508063017cf6611461267957806306fdde0314612530578063095ea7b3146124835780630d2462141461241557806310ebae83146123bd57806318160ddd146123825780631f3a0e411461234257806323b872dd146121ae578063313ce5671461217557806331596a6a1461211d57806341c0e1b514612096578063476e44b614611fc0578063491e799814611ea85780635cffe9de146119695780636863f5bc146117dc5780636b4082d1146117835780636bba3f2f146117275780636d8d0ff31461166c5780636ff97f1d1461156c57806370a0823114611509578063715018a61461146d57806379a68d53146112c65780638da5cb5b146112755780638e499bcf1461123957806395176066146111ca57806395d89b4114611070578063a1af5b9a14610f9a578063a9059cbb14610f4a578063b3f1c93d14610ea1578063bdbfec9914610648578063cb717f3a146104ea578063cce516b71461047b578063d516b8c614610400578063dd62ed3e14610387578063e4b50cb814610325578063f0d1ae4f146102b65763f2fde38b0361000f57346102b35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35773ffffffffffffffffffffffffffffffffffffffff610212612826565b61021a612c6a565b1680156102875773ffffffffffffffffffffffffffffffffffffffff8254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6024827f1e4fbdf700000000000000000000000000000000000000000000000000000000815280600452fd5b80fd5b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102b35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602073ffffffffffffffffffffffffffffffffffffffff610377600435612aa3565b90549060031b1c16604051908152f35b50346102b35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35773ffffffffffffffffffffffffffffffffffffffff60406103d6612826565b92826103e0612849565b9416815260026020522091165f52602052602060405f2054604051908152f35b50346102b35760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576064359081600f0b82036102b35761047761045383604435602435600435612f92565b92505050604093919351938493846040919493926060820195825260208201520152565b0390f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610624610520612826565b73ffffffffffffffffffffffffffffffffffffffff61053d612849565b81604051937f3dd3c8050000000000000000000000000000000000000000000000000000000060208601521660248401521660448201526044356064820152606435608482015260843560a48201527f000000000000000000000000000000000000000000000000000000000000000060c48201527f000000000000000000000000000000000000000000000000000000000000000060e482015260e481526105e8610104826128b5565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016612cb6565b602081519181808201938492010103126106445760209051604051908152f35b5f80fd5b506101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35761067c612826565b610684612849565b9060a4359283600f0b84036102b35760e4359360c4358515158603610e9d576106ab612d7d565b6106ba60ff600654161561298a565b8015908115610e92575b5015610e34576106dc90608435606435604435612f92565b9692949791939890506044356106f190612aa3565b90549060031b1c73ffffffffffffffffffffffffffffffffffffffff169360643561071b90612aa3565b90549060031b1c73ffffffffffffffffffffffffffffffffffffffff16956107448a8787612e19565b89610750604435612a8b565b90549060031b1c60443561076390612a46565b90549060031b1c61077391612ad3565b9061077d91612ad3565b8b610789606435612a8b565b90549060031b1c60643561079c90612a46565b90549060031b1c6107ac91612ad3565b906107b6916129ef565b7f0000000000000000000000000000000000000000000000000000000000000000908b821515610893946108889461086f938361082e94610e2b575b610db5575b5050610816610807604435612a46565b90549060031b1c821015612ae0565b610821604435612a46565b90549060031b1c906129ef565b610839604435612a8b565b9091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83549160031b92831b921b1916179055565b61087d610807606435612a46565b610821606435612a46565b610839606435612a8b565b6108ab60075480604435109081610da9575b50613130565b8781600f0b1315610d4b578782600f0b1315610ced576109419161091c6108e9610936936108da604435613195565b90549060031b1c600f0b613240565b6108f4604435613195565b9091906fffffffffffffffffffffffffffffffff83549160031b928116831b921b1916179055565b610927606435613195565b90549060031b1c600f0b613298565b6108f4606435613195565b80610cae575b15610bbf5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b15610bbb5785809160248b60405194859384927f2e1a7d4d00000000000000000000000000000000000000000000000000000000845260048401525af18015610bb057908691610b97575b508080808b855af13d15610b92573d67ffffffffffffffff8111610b655760405190610a2460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836128b5565b81528660203d92013e5b15610b0757606073ffffffffffffffffffffffffffffffffffffffff7f20efd6d5195b7b50273f01cd79a27989255356f9f13293edc53ee142accfdb75925b81604051951685528960208601528a60408601521692a460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00554780158015610ad6575b50505061047790604051938493846040919493926060820195825260208201520152565b8280809381938290610afe575b3390f115610af2578080610ab2565b604051903d90823e3d90fd5b506108fc610ae3565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7265636569766572206e6f742070617961626c650000000000000000000000006044820152fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b610a2e565b81610ba1916128b5565b610bac57845f6109d0565b8480fd5b6040513d88823e3d90fd5b8580fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000865273ffffffffffffffffffffffffffffffffffffffff82166004528860245260208660448180895af1906001875114821615610c8d575b60405215610c6157606073ffffffffffffffffffffffffffffffffffffffff7f20efd6d5195b7b50273f01cd79a27989255356f9f13293edc53ee142accfdb7592610a6d565b602485857f5274afe7000000000000000000000000000000000000000000000000000000008252600452fd5b906001811516610ca557853b15153d15161690610c1b565b503d86823e3d90fd5b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168414610947565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4c4d53523a20616d6f756e744f7574203c3d20300000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4c4d53523a20616d6f756e74496e203c3d2030000000000000000000000000006044820152fd5b9050606435105f6108a5565b620f424091610dc3916129fc565b0480610dd0575b8f6107f7565b610e2590610df1610de2604435612a46565b91909283548360031b1c612ad3565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83549160031b92831b921b1916179055565b5f610dca565b508015156107f2565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f737761703a20646561646c696e652065786365656465640000000000000000006044820152fd5b90504211155f6106c4565b8280fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610624610ed7612826565b73ffffffffffffffffffffffffffffffffffffffff610ef4612849565b81604051937fb3f1c93d00000000000000000000000000000000000000000000000000000000602086015216602484015216604482015260443560648201526064356084820152608481526105e860a4826128b5565b50346102b35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610f8f610f85612826565b6024359033612b45565b602060405160018152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610fd1612d7d565b6110486040517f2a54db0100000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166024820152602481526105e86044826128b5565b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576040519080600554908160011c916001811680156111c0575b6020841081146111935783865290811561114e57506001146110f1575b610477846110e5818603826128b5565b604051918291826127de565b600581527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b808210611134575090915081016020016110e5826110d5565b91926001816020925483858801015201910190929161111b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915292151560051b850190920192506110e591508390506110d5565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b92607f16926110b8565b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576020600a54604051908152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b5060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576112f9612826565b611301612849565b9060843580600f0b8091036114695760c43590811515809203610bac5773ffffffffffffffffffffffffffffffffffffffff61142b9481604051957f8a3d858d0000000000000000000000000000000000000000000000000000000060208801521660248601521660448401526044356064840152606435608484015260a483015260a43560c483015260e48201527f00000000000000000000000000000000000000000000000000000000000000006101048201527f000000000000000000000000000000000000000000000000000000000000000061012482015261012481526113ef610144826128b5565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016612cb6565b906060828051810103126102b35750602081015161047760606040840151930151604051938493846040919493926060820195825260208201520152565b8380fd5b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576114a4612c6a565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102b35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357604060209173ffffffffffffffffffffffffffffffffffffffff61155b612826565b168152600183522054604051908152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357604051806020600a5491828152018091600a85527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890855b81811061164057505050826115e99103836128b5565b604051928392602084019060208552518091526040840192915b818110611611575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff16845285945060209384019390920191600101611603565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016115d3565b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576106246116a2612826565b73ffffffffffffffffffffffffffffffffffffffff604051917fc5eabfb900000000000000000000000000000000000000000000000000000000602084015216602482015260243560448201527f0000000000000000000000000000000000000000000000000000000000000000600f0b6064820152606481526105e86084826128b5565b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35760206040517f0000000000000000000000000000000000000000000000000000000000000000600f0b8152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346102b35760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357611814612826565b61181c612849565b906084358015158091036114695773ffffffffffffffffffffffffffffffffffffffff61189e9381604051947f6863f5bc0000000000000000000000000000000000000000000000000000000060208701521660248501521660448301526044356064830152606435608483015260a482015260a481526105e860c4826128b5565b8051810190602081818401930312610e9d5760208101519067ffffffffffffffff821161146957019181603f840112156102b35760208301519267ffffffffffffffff841161193c578360051b91604051946118fd60208501876128b5565b855260208080870194840101019384116102b35750604001905b82821061192c576040518061047786826127a5565b8151815260209182019101611917565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b346106445760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106445760043573ffffffffffffffffffffffffffffffffffffffff8116809103610644576119c1612849565b60643560443567ffffffffffffffff821161064457366023830112156106445781600401359267ffffffffffffffff84116106445736602485850101116106445773ffffffffffffffffffffffffffffffffffffffff90611a20612d7d565b611a2f60ff600654161561298a565b16906040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152602081602481865afa908115611d0d575f91611e76575b50811161064457815f52600d60205260405f2054938415611e18577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501948511611deb57611ae37f000000000000000000000000000000000000000000000000000000000000000083612df4565b50937f000000000000000000000000000000000000000000000000000000000000000080151580611de2575b611db7575b506040517fa9059cbb000000000000000000000000000000000000000000000000000000005f52876004528360245260205f60448180895af19060015f5114821615611d96575b60405215611d6a57602460c46020927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8660405197889687957f23e30c8b0000000000000000000000000000000000000000000000000000000087523360048801528c828801528b60448801528d606488015260a060848801528260a488015201868601375f858286010152011681010301815f8a5af18015611d0d575f90611d18575b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd99150036106445760249482611c3c602095611c4294612ad3565b91612e19565b604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa918215611d0d575f92611cd7575b50610839611ca2611ca893611c9961080785612a46565b61082184612a46565b91612a8b565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055602060405160018152f35b91506020823d602011611d05575b81611cf2602093836128b5565b8101031261064457905190610839611c82565b3d9150611ce5565b6040513d5f823e3d90fd5b506020813d602011611d62575b81611d32602093836128b5565b81010312610644577f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd99051611c01565b3d9150611d25565b837f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b906001811516611dae57853b15153d15161690611b5b565b503d5f823e3d90fd5b611dc5620f424091876129fc565b048015611b1457611ddc90610df1610de289612a46565b87611b14565b50851515611b0f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f666c6173683a20746f6b656e206e6f7420696e20706f6f6c00000000000000006044820152fd5b90506020813d602011611ea0575b81611e91602093836128b5565b81010312610644575186611a74565b3d9150611e84565b346106445760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457611edf612826565b611ee7612849565b9060a4358015158091036106445773ffffffffffffffffffffffffffffffffffffffff6106249381604051947f8d01fa440000000000000000000000000000000000000000000000000000000060208701521660248501521660448301526044356064830152606435608483015260843560a483015260c48201527f000000000000000000000000000000000000000000000000000000000000000060e48201527f000000000000000000000000000000000000000000000000000000000000000061010482015261010481526105e8610124826128b5565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457606060408051611ffd8161286c565b5f81525f602082015201526040516120148161286c565b6007548152600854600f0b6020820190815261202e6128f6565b916040810192835260405192839260208452608084019251602085015251600f0b604084015251906060808401528151809152602060a084019201905f5b81811061207a575050500390f35b8251600f0b84528594506020938401939092019160010161206c565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576120cc612c6a565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060065416176006557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb3315f80a1005b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106445760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457602060405160128152f35b346106445760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576121e5612826565b6121ed612849565b6044359073ffffffffffffffffffffffffffffffffffffffff831692835f52600260205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f20547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110612269575b50610f8f9350612b45565b83811061230e5784156122e25733156122b657610f8f945f52600260205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f526020528360405f20910390558461225e565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457602060ff600654166040519015158152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576020600354604051908152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106445760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346106445760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576124ba612826565b6024359033156122e25773ffffffffffffffffffffffffffffffffffffffff169081156122b657335f52600260205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576040515f6004548060011c9060018116801561266f575b6020831081146126425782855290811561260057506001146125a2575b610477836110e5818503826128b5565b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106125e6575090915081016020016110e5612592565b9192600181602092548385880101520191019092916125ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506110e59050612592565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691612575565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457604051806020600c54918281520190600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7905f5b81811061270157610477856126f5818703826128b5565b604051918291826127a5565b82548452602090930192600192830192016126de565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457600b548082526020820190600b5f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9905f5b81811061278f57610477856126f5818703826128b5565b8254845260209093019260019283019201612778565b60206040818301928281528451809452019201905f5b8181106127c85750505090565b82518452602093840193909201916001016127bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361064457565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361064457565b6060810190811067ffffffffffffffff82111761288857604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761288857604052565b60405190600954808352826020810160095f5260205f20925f905b80600183011061295e5761293794549181811061294a575b10612939575b5003836128b5565b565b60801d600f0b81526020015f61292f565b92602060019184600f0b8152019301612929565b9160029193506040600191865480600f0b825260801d600f0b6020820152019401920185929391612911565b1561299157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f6b696c6c656400000000000000000000000000000000000000000000000000006044820152fd5b91908203918211611deb57565b81810292918115918404141715611deb57565b8115612a19570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600b54811015612a5e57600b5f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b600e54811015612a5e57600e5f5260205f2001905f90565b600a54811015612a5e57600a5f5260205f2001905f90565b600c54811015612a5e57600c5f5260205f2001905f90565b91908201809211611deb57565b15612ae757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f62616c616e6365203c2070726f746f636f6c206f7765640000000000000000006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff16908115612c3e5773ffffffffffffffffffffffffffffffffffffffff16918215612c1257815f52600160205260405f2054818110612be057817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f52600184520360405f2055845f526001825260405f20818154019055604051908152a3565b827fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff5f54163303612c8a57565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b905f8091602081519101845af48080612d6a575b15612cea5750506040513d81523d5f602083013e60203d82010160405290565b15612d315773ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b3d15612d42576040513d5f823e3d90fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b503d151580612cca5750813b1515612cca565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005414612dcc5760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b91908015612e1357612e09612e1091846131d5565b80936129ef565b90565b505f9190565b9073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169173ffffffffffffffffffffffffffffffffffffffff82169183831480612f88575b15612ec957505050803b15610644575f906004604051809481937fd0e30db00000000000000000000000000000000000000000000000000000000083525af18015611d0d57612ebf5750565b5f612937916128b5565b919390925073ffffffffffffffffffffffffffffffffffffffff604051937f23b872dd000000000000000000000000000000000000000000000000000000005f52166004523060245260445260205f60648180855af19060015f5114821615612f69575b50906040525f60605215612f3e5750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6001821516612f7f573b15153d1516165f612f2d565b823d5f823e3d90fd5b5084341015612e73565b919392937f000000000000000000000000000000000000000000000000000000000000000094612fdd612fc58784612df4565b9050612fd086612abb565b90549060031b1c906132d5565b905f82600f0b13156130d257613006918486600754600854600f0b6130006128f6565b9161356e565b91909261302583946130188197612abb565b90549060031b1c9061320e565b925f928498806130b1575b5088116130535761304361305092612abb565b90549060031b1c906134ff565b94565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f737761703a207472616e736665722065786365656473206d61780000000000006044820152fd5b9098506130c0919350846131d5565b916130cb8385612ad3565b975f613030565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f737761703a20696e70757420746f6f20736d616c6c20616674657220666565006044820152fd5b1561313757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4c4d53523a2069647800000000000000000000000000000000000000000000006044820152fd5b90600954821015612a5e5760095f52600182901c7f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019160041b60101690565b908015613208576131e5916129fc565b620f4240810190818111611deb57620f423f01908111611deb57620f4240900490565b50505f90565b61322261321b83836134ff565b92836132d5565b90600f0b90600f0b126132325790565b60018101809111611deb5790565b90600f0b90600f0b017fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061327e575b1561064457600f0b90565b506f7fffffffffffffffffffffffffffffff811315613273565b90600f0b90600f0b037fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061327e571561064457600f0b90565b81156106445777ffffffffffffffffffffffffffffffffffffffffffffffff811161334d57906133079160401b612a0f565b6fffffffffffffffffffffffffffffffff8111610644576fffffffffffffffffffffffffffffffff166f7fffffffffffffffffffffffffffffff811161064457600f0b90565b60c09181831c80936401000000008210156134f2575b600282620100006133f09410156134e6575b6101008110156134da575b60108110156134ce575b60048110156134c3575b10156134bb575b8360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4184011c019160ff031b612a0f565b926fffffffffffffffffffffffffffffffff8411610644578160801c8402906fffffffffffffffffffffffffffffffff8316850290809460401b90828210613491575b5003928160801b91828510613468575b60801c0361345d576134559203612a0f565b905b01613307565b505050600190613457565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190613443565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0194505f613433565b60010161339b565b91810191811c613394565b6004928301921c61338a565b6008928301921c613380565b6010928301921c613375565b505060e082811c90613363565b811561320857600f0b5f8112610644576fffffffffffffffffffffffffffffffff8216810260401c9160801c0277ffffffffffffffffffffffffffffffffffffffffffffffff81116106445760401b81198111610644570190565b8051821015612a5e5760209160051b010190565b61358a909793969491979592958088109081613c0a5750613130565b81935f965f975b87518910156135bc576135b46001916135aa8b8b61355a565b51600f0b90613240565b980197613591565b909294975097909294975f81600f0b1315613bac576135da91613c14565b9384600f0b5f811315613b4e57801561064457700100000000000000000000000000000000057fffffffffffffffffffffffffffffffff8000000000000000000000000000000081121580613b34575b1561064457600f0b915f61363e868961355a565b51600f0b1315613ad6576136798361367461365c61367e948b61355a565b51600f0b61366a898c61355a565b51600f0b90613298565b613c14565b613c54565b9283600f0b905f821315613a785780600f0b5f8113613877575b505050906136a591613c14565b80600f0b6820000000000000000081136137f3577fffffffffffffffffffffffffffffffff8000000000000000000000000000000014610644576136ed905f03600f0b613c54565b600f0b6801000000000000000003907fffffffffffffffffffffffffffffffff80000000000000000000000000000000821215806137d9575b156106445761373891600f0b90613c14565b600f0b68010000000000000000017fffffffffffffffffffffffffffffffff80000000000000000000000000000000811215806137bf575b1561064457600f0b925f8413156137ab57505061378f61379592613cb6565b90613c14565b905f82600f0b13156137a357565b5f9250829150565b9091506137b8925061355a565b51600f0b90565b506f7fffffffffffffffffffffffffffffff811315613770565b506f7fffffffffffffffffffffffffffffff821315613726565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4c4d53523a20612f6220746f6f206c617267652028776f756c64206f7665726660448201527f6c6f7720657870290000000000000000000000000000000000000000000000006064820152fd5b5f8312613a1a57821590811561388e575b50613698565b83909b949b1315613996576106445760401b60170b057fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061397c575b1561064457600f0b5f81131561391e576138ea6138f091613cb6565b86613c14565b9780600f0b89600f0b125f146139125750506136a590875b90915f8080613888565b6136a592919850613908565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4c4d53523a20726174696f3c3d300000000000000000000000000000000000006044820152fd5b506f7fffffffffffffffffffffffffffffff8113156138ce565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4c4d53523a206c696d69745072696365203c3d2063757272656e74207072696360448201527f65000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4c4d53523a2072303c30000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4c4d53523a2072303c3d300000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4c4d53523a20655f6a3d3d3000000000000000000000000000000000000000006044820152fd5b506f7fffffffffffffffffffffffffffffff81131561362a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4c4d53523a20623c3d30000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c4d53523a2073697a65206d6574726963207a65726f000000000000000000006044820152fd5b905082105f6108a5565b90600f0b90600f0b0260401d7fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061327e571561064457600f0b90565b600f0b68400000000000000000811215610644577fffffffffffffffffffffffffffffffffffffffffffffffc000000000000000008112613cb157700171547652b82fe1777d0ffda0d23a7d12612e10910260801d600f0b613de3565b505f90565b600f0b5f811315610644575f908068010000000000000000821215613dd6575b806401000000006002921215613dca575b62010000811215613dbe575b610100811215613db2575b6010811215613da6575b6004811215613d9b575b1215613d91575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0820160401b91607f031b90678000000000000000915b5f8313613d7557506fb17217f7d1cf79abc9e3b39803f2f6af9150600f0b0260801d90565b8002908160ff1c9182607f011c918302019160011d9190613d50565b9060010190613d19565b92810192811d613d12565b6004938401931d613d08565b6008938401931d613cfe565b6010938401931d613cf3565b6020938401931d613ce7565b506040915080821d613cd6565b80600f0b68400000000000000000811215610644577fffffffffffffffffffffffffffffffffffffffffffffffc000000000000000008112613208576f80000000000000000000000000000000915f6780000000000000008216600f0b136149df575b5f6740000000000000008216600f0b136149c2575b5f6720000000000000008216600f0b136149a5575b5f6710000000000000008216600f0b13614988575b5f6708000000000000008216600f0b1361496b575b5f6704000000000000008216600f0b1361494e575b5f6702000000000000008216600f0b13614931575b5f6701000000000000008216600f0b13614914575b5f66800000000000008216600f0b136148f7575b5f66400000000000008216600f0b136148da575b5f66200000000000008216600f0b136148bd575b5f66100000000000008216600f0b136148a0575b5f66080000000000008216600f0b13614883575b5f66040000000000008216600f0b13614866575b5f66020000000000008216600f0b13614849575b5f66010000000000008216600f0b1361482c575b5f658000000000008216600f0b1361480f575b5f654000000000008216600f0b136147f2575b5f652000000000008216600f0b136147d5575b5f651000000000008216600f0b136147b8575b5f650800000000008216600f0b1361479b575b5f650400000000008216600f0b1361477e575b5f650200000000008216600f0b13614761575b5f650100000000008216600f0b13614744575b5f6480000000008216600f0b13614727575b5f6440000000008216600f0b1361470a575b5f6420000000008216600f0b136146ed575b5f6410000000008216600f0b136146d0575b5f6408000000008216600f0b136146b3575b5f6404000000008216600f0b13614696575b5f6402000000008216600f0b13614679575b5f6401000000008216600f0b1361465c575b5f63800000008216600f0b1361463f575b5f63400000008216600f0b13614622575b5f63200000008216600f0b13614605575b5f63100000008216600f0b136145e8575b5f63080000008216600f0b136145cb575b5f63040000008216600f0b136145ae575b5f63020000008216600f0b13614591575b5f63010000008216600f0b13614574575b5f628000008216600f0b13614557575b5f624000008216600f0b1361453a575b5f622000008216600f0b1361451d575b5f621000008216600f0b13614500575b5f620800008216600f0b136144e3575b5f620400008216600f0b136144c6575b5f620200008216600f0b136144a9575b5f620100008216600f0b1361448c575b5f6180008216600f0b1361446f575b5f6140008216600f0b13614452575b5f6120008216600f0b13614435575b5f6110008216600f0b13614418575b5f6108008216600f0b136143fb575b5f6104008216600f0b136143de575b5f6102008216600f0b136143c1575b5f6101008216600f0b136143a4575b5f60808216600f0b13614387575b5f60408216600f0b1361436a575b5f60208216600f0b1361434d575b5f60108216600f0b13614330575b5f60088216600f0b13614313575b5f60048216600f0b136142f6575b5f60028216600f0b136142d8575b60015f9116600f0b136142bb575b60401d600f0b603f03600f0b1c6f7fffffffffffffffffffffffffffffff811161064457600f0b90565b9070010000000000000000b17217f7d1cf79ab0260801c90614291565b7001000000000000000162e42fefa39ef35890920260801c91614283565b9170010000000000000002c5c85fdf473de6b20260801c91614275565b91700100000000000000058b90bfbe8e7bcd6d0260801c91614267565b917001000000000000000b17217f7d1cf79afa0260801c91614259565b91700100000000000000162e42fefa39ef366f0260801c9161424b565b917001000000000000002c5c85fdf473de6eca0260801c9161423d565b9170010000000000000058b90bfbe8e7bce5440260801c9161422f565b91700100000000000000b17217f7d1cf79e9490260801c91614221565b9170010000000000000162e42fefa39ef44d910260801c91614212565b91700100000000000002c5c85fdf473dea871f0260801c91614203565b917001000000000000058b90bfbe8e7bdcbe2e0260801c916141f4565b9170010000000000000b17217f7d1cf7d83c1a0260801c916141e5565b917001000000000000162e42fefa39f02b772c0260801c916141d6565b9170010000000000002c5c85fdf473e242ea380260801c916141c7565b91700100000000000058b90bfbe8e7cc35c3f00260801c916141b8565b917001000000000000b17217f7d1cfb72b45e10260801c916141a9565b91700100000000000162e42fefa39fe95583c20260801c91614199565b917001000000000002c5c85fdf4741bea6e77e0260801c91614189565b9170010000000000058b90bfbe8e8b2d3d4ede0260801c91614179565b91700100000000000b17217f7d1d351a389d400260801c91614169565b9170010000000000162e42fefa3ae53369388c0260801c91614159565b91700100000000002c5c85fdf477b662b269450260801c91614149565b917001000000000058b90bfbe8f71cb4e4b33d0260801c91614139565b9170010000000000b17217f7d20cf927c8e94c0260801c91614129565b917001000000000162e42fefa494f1478fde050260801c91614118565b9170010000000002c5c85fdf4b15de6f17eb0d0260801c91614107565b91700100000000058b90bfbe9ddbac5e109cce0260801c916140f6565b917001000000000b17217f7d5a7716bba4a9ae0260801c916140e5565b91700100000000162e42fefb2fed257559bdaa0260801c916140d4565b917001000000002c5c85fdf84bd62ae30a74cc0260801c916140c3565b9170010000000058b90bfbf8479bd5a81b51ad0260801c916140b2565b91700100000000b17217f80f4ef5aadda455540260801c916140a1565b9170010000000162e42ff0999ce3541b9fffcf0260801c9161408f565b91700100000002c5c85fe31f35a6a30da1be500260801c9161407d565b917001000000058b90bfcdee5acd3c1cedc8230260801c9161406b565b9170010000000b17217fba9c739aa5819f44f90260801c91614059565b917001000000162e42fff037df38aa2b219f060260801c91614047565b9170010000002c5c8601cc6b9e94213c72737a0260801c91614035565b91700100000058b90c0b48c6be5df846c5b2ef0260801c91614023565b917001000000b1721835514b86e6d96efd1bfe0260801c91614011565b91700100000162e430e5a18f6119e3c02282a50260801c91613ffe565b917001000002c5c863b73f016468f6bac5ca2b0260801c91613feb565b9170010000058b90cf1e6d97f9ca14dbcc16280260801c91613fd8565b91700100000b1721bcfc99d9f890ea069117630260801c91613fc5565b9170010000162e43f4f831060e02d839a9d16d0260801c91613fb2565b91700100002c5c89d5ec6ca4d7c8acc017b7c90260801c91613f9f565b917001000058b91b5bc9ae2eed81e9b7d4cfab0260801c91613f8c565b9170010000b17255775c040618bf4a4ade83fc0260801c91613f79565b917001000162e525ee054754457d59952920260260801c91613f65565b9170010002c5cc37da9491d0985c348c68e7b30260801c91613f51565b91700100058ba01fb9f96d6cacd4b180917c3d0260801c91613f3d565b917001000b175effdc76ba38e31671ca9397250260801c91613f29565b91700100162f3904051fa128bca9c55c31e5df0260801c91613f15565b917001002c605e2e8cec506d21bfc89a23a00f0260801c91613f01565b9170010058c86da1c09ea1ff19d294cf2f679b0260801c91613eed565b91700100b1afa5abcbed6129ab13ec11dc95430260801c91613ed9565b9170010163da9fb33356d84a66ae336dcdfa3f0260801c91613ec4565b91700102c9a3e778060ee6f7caca4f7a29bde80260801c91613eaf565b917001059b0d31585743ae7c548eb68ca417fd0260801c91613e9a565b9170010b5586cf9890f6298b92b71842a983630260801c91613e85565b917001172b83c7d517adcdf7c8c50eb14a791f0260801c91613e70565b917001306fe0a31b7152de8d5a46305c85edec0260801c91613e5b565b6fb504f333f9de6484597d89b3754abe9f9250613e4656fea26469706673582212204b495fb5ab2f70ef9827469b408fbc37b60897cc1daf5dc94e98d0100d177d8b64736f6c634300081e0033","sourceMap":"2482:19258:55:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2482:19258:55;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;1505:66:37;2482:19258:55;;1128:24:57;-1:-1:-1;;;;;2482:19258:55;1018:26:52;;1014:95;;-1:-1:-1;2482:19258:55;;-1:-1:-1;;;;;;2482:19258:55;;;;;;-1:-1:-1;;;;;2482:19258:55;;1104:49:53;;-1:-1:-1;1104:49:53;2482:19258:55;;;-1:-1:-1;;;;;2482:19258:55;;;;882:13:42;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;882:13:42;2482:19258:55;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;6814:18;2482:19258;;;;;;;6874:31;2482:19258;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;6942:17;2482:19258;;6942:17;2482:19258;;;;;;;;6942:17;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;-1:-1:-1;2482:19258:55;;;;;;-1:-1:-1;;2482:19258:55;;;;-1:-1:-1;;;;;;;2482:19258:55;;;;;;;;;6969:15;2482:19258;;6969:15;2482:19258;;;;;;;;6969:15;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;-1:-1:-1;2482:19258:55;;;;;;6994:14;;;;2482:19258;6994:14;7040:9;7026:23;;2482:19258;;;;7080:26;7040:9;7124:24;;2482:19258;;;;7185:28;7040:9;7231:27;;2482:19258;;;7396:20;;:57;;;;2482:19258;;;;;7464:34;2482:19258;7508:42;2482:19258;7560:21;2482:19258;7591:21;2482:19258;;;;7760:5;2482:19258;-1:-1:-1;7858:5:55;;;;;;8056:16;;;;:::i;:::-;2482:19258;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;8034:38;2482:19258;;8034:38;2482:19258;;;;;;7841:126;2482:19258;;8034:38;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;-1:-1:-1;2482:19258:55;;;;;;8102:16;;;:::i;:::-;2482:19258;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;8082:36;2482:19258;;8082:36;2482:19258;;;;;;;;;;8082:36;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8082:36;-1:-1:-1;2482:19258:55;;;-1:-1:-1;2482:19258:55;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;2482:19258:55;;882:13:42;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;8034:38;-1:-1:-1;2482:19258:55;;;-1:-1:-1;2482:19258:55;;;;;;;:::i;:::-;;;;7846:10;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;7880:27;2482:19258;;;;-1:-1:-1;2482:19258:55;;7846:10;;2482:19258;;;;-1:-1:-1;2482:19258:55;;882:13:42;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;-1:-1:-1;2482:19258:55;;882:13:42;2482:19258:55;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;7396:57;-1:-1:-1;;;;;;2482:19258:55;;7420:33;;7396:57;;2482:19258;;;-1:-1:-1;;;2482:19258:55;;;882:13:42;2482:19258:55;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2482:19258:55;;;882:13:42;2482:19258:55;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2482:19258:55;;;882:13:42;2482:19258:55;;;;;;;;-1:-1:-1;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;6969:15;-1:-1:-1;2482:19258:55;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;;;;;6942:17;-1:-1:-1;2482:19258:55;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;2482:19258:55;;;882:13:42;2482:19258:55;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2482:19258:55;;;882:13:42;2482:19258:55;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;-1:-1:-1;2482:19258:55;;;;;;;-1:-1:-1;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;-1:-1:-1;2482:19258:55;;882:13:42;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;882:13:42;-1:-1:-1;2482:19258:55;;;;;;;-1:-1:-1;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;882:13:42;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;882:13:42;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1014:95:52;1067:31;;;-1:-1:-1;1067:31:52;-1:-1:-1;1067:31:52;2482:19258:55;;-1:-1:-1;1067:31:52;2482:19258:55;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2482:19258:55;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2482:19258:55;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;2482:19258:55;;;;;;;;-1:-1:-1;;2482:19258:55;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2482:19258:55;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c908163017504b61461271757508063017cf6611461267957806306fdde0314612530578063095ea7b3146124835780630d2462141461241557806310ebae83146123bd57806318160ddd146123825780631f3a0e411461234257806323b872dd146121ae578063313ce5671461217557806331596a6a1461211d57806341c0e1b514612096578063476e44b614611fc0578063491e799814611ea85780635cffe9de146119695780636863f5bc146117dc5780636b4082d1146117835780636bba3f2f146117275780636d8d0ff31461166c5780636ff97f1d1461156c57806370a0823114611509578063715018a61461146d57806379a68d53146112c65780638da5cb5b146112755780638e499bcf1461123957806395176066146111ca57806395d89b4114611070578063a1af5b9a14610f9a578063a9059cbb14610f4a578063b3f1c93d14610ea1578063bdbfec9914610648578063cb717f3a146104ea578063cce516b71461047b578063d516b8c614610400578063dd62ed3e14610387578063e4b50cb814610325578063f0d1ae4f146102b65763f2fde38b0361000f57346102b35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35773ffffffffffffffffffffffffffffffffffffffff610212612826565b61021a612c6a565b1680156102875773ffffffffffffffffffffffffffffffffffffffff8254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6024827f1e4fbdf700000000000000000000000000000000000000000000000000000000815280600452fd5b80fd5b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102b35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602073ffffffffffffffffffffffffffffffffffffffff610377600435612aa3565b90549060031b1c16604051908152f35b50346102b35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35773ffffffffffffffffffffffffffffffffffffffff60406103d6612826565b92826103e0612849565b9416815260026020522091165f52602052602060405f2054604051908152f35b50346102b35760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576064359081600f0b82036102b35761047761045383604435602435600435612f92565b92505050604093919351938493846040919493926060820195825260208201520152565b0390f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610624610520612826565b73ffffffffffffffffffffffffffffffffffffffff61053d612849565b81604051937f3dd3c8050000000000000000000000000000000000000000000000000000000060208601521660248401521660448201526044356064820152606435608482015260843560a48201527f000000000000000000000000000000000000000000000000000000000000000060c48201527f000000000000000000000000000000000000000000000000000000000000000060e482015260e481526105e8610104826128b5565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016612cb6565b602081519181808201938492010103126106445760209051604051908152f35b5f80fd5b506101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35761067c612826565b610684612849565b9060a4359283600f0b84036102b35760e4359360c4358515158603610e9d576106ab612d7d565b6106ba60ff600654161561298a565b8015908115610e92575b5015610e34576106dc90608435606435604435612f92565b9692949791939890506044356106f190612aa3565b90549060031b1c73ffffffffffffffffffffffffffffffffffffffff169360643561071b90612aa3565b90549060031b1c73ffffffffffffffffffffffffffffffffffffffff16956107448a8787612e19565b89610750604435612a8b565b90549060031b1c60443561076390612a46565b90549060031b1c61077391612ad3565b9061077d91612ad3565b8b610789606435612a8b565b90549060031b1c60643561079c90612a46565b90549060031b1c6107ac91612ad3565b906107b6916129ef565b7f0000000000000000000000000000000000000000000000000000000000000000908b821515610893946108889461086f938361082e94610e2b575b610db5575b5050610816610807604435612a46565b90549060031b1c821015612ae0565b610821604435612a46565b90549060031b1c906129ef565b610839604435612a8b565b9091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83549160031b92831b921b1916179055565b61087d610807606435612a46565b610821606435612a46565b610839606435612a8b565b6108ab60075480604435109081610da9575b50613130565b8781600f0b1315610d4b578782600f0b1315610ced576109419161091c6108e9610936936108da604435613195565b90549060031b1c600f0b613240565b6108f4604435613195565b9091906fffffffffffffffffffffffffffffffff83549160031b928116831b921b1916179055565b610927606435613195565b90549060031b1c600f0b613298565b6108f4606435613195565b80610cae575b15610bbf5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b15610bbb5785809160248b60405194859384927f2e1a7d4d00000000000000000000000000000000000000000000000000000000845260048401525af18015610bb057908691610b97575b508080808b855af13d15610b92573d67ffffffffffffffff8111610b655760405190610a2460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836128b5565b81528660203d92013e5b15610b0757606073ffffffffffffffffffffffffffffffffffffffff7f20efd6d5195b7b50273f01cd79a27989255356f9f13293edc53ee142accfdb75925b81604051951685528960208601528a60408601521692a460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00554780158015610ad6575b50505061047790604051938493846040919493926060820195825260208201520152565b8280809381938290610afe575b3390f115610af2578080610ab2565b604051903d90823e3d90fd5b506108fc610ae3565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7265636569766572206e6f742070617961626c650000000000000000000000006044820152fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b610a2e565b81610ba1916128b5565b610bac57845f6109d0565b8480fd5b6040513d88823e3d90fd5b8580fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000865273ffffffffffffffffffffffffffffffffffffffff82166004528860245260208660448180895af1906001875114821615610c8d575b60405215610c6157606073ffffffffffffffffffffffffffffffffffffffff7f20efd6d5195b7b50273f01cd79a27989255356f9f13293edc53ee142accfdb7592610a6d565b602485857f5274afe7000000000000000000000000000000000000000000000000000000008252600452fd5b906001811516610ca557853b15153d15161690610c1b565b503d86823e3d90fd5b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168414610947565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4c4d53523a20616d6f756e744f7574203c3d20300000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4c4d53523a20616d6f756e74496e203c3d2030000000000000000000000000006044820152fd5b9050606435105f6108a5565b620f424091610dc3916129fc565b0480610dd0575b8f6107f7565b610e2590610df1610de2604435612a46565b91909283548360031b1c612ad3565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83549160031b92831b921b1916179055565b5f610dca565b508015156107f2565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f737761703a20646561646c696e652065786365656465640000000000000000006044820152fd5b90504211155f6106c4565b8280fd5b5060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610624610ed7612826565b73ffffffffffffffffffffffffffffffffffffffff610ef4612849565b81604051937fb3f1c93d00000000000000000000000000000000000000000000000000000000602086015216602484015216604482015260443560648201526064356084820152608481526105e860a4826128b5565b50346102b35760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610f8f610f85612826565b6024359033612b45565b602060405160018152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357610fd1612d7d565b6110486040517f2a54db0100000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166024820152602481526105e86044826128b5565b5060017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005580f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576040519080600554908160011c916001811680156111c0575b6020841081146111935783865290811561114e57506001146110f1575b610477846110e5818603826128b5565b604051918291826127de565b600581527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b808210611134575090915081016020016110e5826110d5565b91926001816020925483858801015201910190929161111b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915292151560051b850190920192506110e591508390506110d5565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b92607f16926110b8565b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576020600a54604051908152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b5060e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576112f9612826565b611301612849565b9060843580600f0b8091036114695760c43590811515809203610bac5773ffffffffffffffffffffffffffffffffffffffff61142b9481604051957f8a3d858d0000000000000000000000000000000000000000000000000000000060208801521660248601521660448401526044356064840152606435608484015260a483015260a43560c483015260e48201527f00000000000000000000000000000000000000000000000000000000000000006101048201527f000000000000000000000000000000000000000000000000000000000000000061012482015261012481526113ef610144826128b5565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016612cb6565b906060828051810103126102b35750602081015161047760606040840151930151604051938493846040919493926060820195825260208201520152565b8380fd5b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576114a4612c6a565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102b35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357604060209173ffffffffffffffffffffffffffffffffffffffff61155b612826565b168152600183522054604051908152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357604051806020600a5491828152018091600a85527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a890855b81811061164057505050826115e99103836128b5565b604051928392602084019060208552518091526040840192915b818110611611575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff16845285945060209384019390920191600101611603565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016115d3565b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b3576106246116a2612826565b73ffffffffffffffffffffffffffffffffffffffff604051917fc5eabfb900000000000000000000000000000000000000000000000000000000602084015216602482015260243560448201527f0000000000000000000000000000000000000000000000000000000000000000600f0b6064820152606481526105e86084826128b5565b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35760206040517f0000000000000000000000000000000000000000000000000000000000000000600f0b8152f35b50346102b357807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b35760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346102b35760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102b357611814612826565b61181c612849565b906084358015158091036114695773ffffffffffffffffffffffffffffffffffffffff61189e9381604051947f6863f5bc0000000000000000000000000000000000000000000000000000000060208701521660248501521660448301526044356064830152606435608483015260a482015260a481526105e860c4826128b5565b8051810190602081818401930312610e9d5760208101519067ffffffffffffffff821161146957019181603f840112156102b35760208301519267ffffffffffffffff841161193c578360051b91604051946118fd60208501876128b5565b855260208080870194840101019384116102b35750604001905b82821061192c576040518061047786826127a5565b8151815260209182019101611917565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b346106445760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106445760043573ffffffffffffffffffffffffffffffffffffffff8116809103610644576119c1612849565b60643560443567ffffffffffffffff821161064457366023830112156106445781600401359267ffffffffffffffff84116106445736602485850101116106445773ffffffffffffffffffffffffffffffffffffffff90611a20612d7d565b611a2f60ff600654161561298a565b16906040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152602081602481865afa908115611d0d575f91611e76575b50811161064457815f52600d60205260405f2054938415611e18577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501948511611deb57611ae37f000000000000000000000000000000000000000000000000000000000000000083612df4565b50937f000000000000000000000000000000000000000000000000000000000000000080151580611de2575b611db7575b506040517fa9059cbb000000000000000000000000000000000000000000000000000000005f52876004528360245260205f60448180895af19060015f5114821615611d96575b60405215611d6a57602460c46020927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8660405197889687957f23e30c8b0000000000000000000000000000000000000000000000000000000087523360048801528c828801528b60448801528d606488015260a060848801528260a488015201868601375f858286010152011681010301815f8a5af18015611d0d575f90611d18575b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd99150036106445760249482611c3c602095611c4294612ad3565b91612e19565b604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa918215611d0d575f92611cd7575b50610839611ca2611ca893611c9961080785612a46565b61082184612a46565b91612a8b565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055602060405160018152f35b91506020823d602011611d05575b81611cf2602093836128b5565b8101031261064457905190610839611c82565b3d9150611ce5565b6040513d5f823e3d90fd5b506020813d602011611d62575b81611d32602093836128b5565b81010312610644577f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd99051611c01565b3d9150611d25565b837f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b906001811516611dae57853b15153d15161690611b5b565b503d5f823e3d90fd5b611dc5620f424091876129fc565b048015611b1457611ddc90610df1610de289612a46565b87611b14565b50851515611b0f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f666c6173683a20746f6b656e206e6f7420696e20706f6f6c00000000000000006044820152fd5b90506020813d602011611ea0575b81611e91602093836128b5565b81010312610644575186611a74565b3d9150611e84565b346106445760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457611edf612826565b611ee7612849565b9060a4358015158091036106445773ffffffffffffffffffffffffffffffffffffffff6106249381604051947f8d01fa440000000000000000000000000000000000000000000000000000000060208701521660248501521660448301526044356064830152606435608483015260843560a483015260c48201527f000000000000000000000000000000000000000000000000000000000000000060e48201527f000000000000000000000000000000000000000000000000000000000000000061010482015261010481526105e8610124826128b5565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457606060408051611ffd8161286c565b5f81525f602082015201526040516120148161286c565b6007548152600854600f0b6020820190815261202e6128f6565b916040810192835260405192839260208452608084019251602085015251600f0b604084015251906060808401528151809152602060a084019201905f5b81811061207a575050500390f35b8251600f0b84528594506020938401939092019160010161206c565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576120cc612c6a565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060065416176006557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb3315f80a1005b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106445760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457602060405160128152f35b346106445760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576121e5612826565b6121ed612849565b6044359073ffffffffffffffffffffffffffffffffffffffff831692835f52600260205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260405f20547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110612269575b50610f8f9350612b45565b83811061230e5784156122e25733156122b657610f8f945f52600260205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f526020528360405f20910390558461225e565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457602060ff600654166040519015158152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576020600354604051908152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126106445760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346106445760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576124ba612826565b6024359033156122e25773ffffffffffffffffffffffffffffffffffffffff169081156122b657335f52600260205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610644576040515f6004548060011c9060018116801561266f575b6020831081146126425782855290811561260057506001146125a2575b610477836110e5818503826128b5565b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106125e6575090915081016020016110e5612592565b9192600181602092548385880101520191019092916125ce565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506110e59050612592565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691612575565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457604051806020600c54918281520190600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7905f5b81811061270157610477856126f5818703826128b5565b604051918291826127a5565b82548452602090930192600192830192016126de565b34610644575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261064457600b548082526020820190600b5f527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9905f5b81811061278f57610477856126f5818703826128b5565b8254845260209093019260019283019201612778565b60206040818301928281528451809452019201905f5b8181106127c85750505090565b82518452602093840193909201916001016127bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361064457565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361064457565b6060810190811067ffffffffffffffff82111761288857604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761288857604052565b60405190600954808352826020810160095f5260205f20925f905b80600183011061295e5761293794549181811061294a575b10612939575b5003836128b5565b565b60801d600f0b81526020015f61292f565b92602060019184600f0b8152019301612929565b9160029193506040600191865480600f0b825260801d600f0b6020820152019401920185929391612911565b1561299157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f6b696c6c656400000000000000000000000000000000000000000000000000006044820152fd5b91908203918211611deb57565b81810292918115918404141715611deb57565b8115612a19570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600b54811015612a5e57600b5f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b600e54811015612a5e57600e5f5260205f2001905f90565b600a54811015612a5e57600a5f5260205f2001905f90565b600c54811015612a5e57600c5f5260205f2001905f90565b91908201809211611deb57565b15612ae757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f62616c616e6365203c2070726f746f636f6c206f7765640000000000000000006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff16908115612c3e5773ffffffffffffffffffffffffffffffffffffffff16918215612c1257815f52600160205260405f2054818110612be057817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f52600184520360405f2055845f526001825260405f20818154019055604051908152a3565b827fe450d38c000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff5f54163303612c8a57565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b905f8091602081519101845af48080612d6a575b15612cea5750506040513d81523d5f602083013e60203d82010160405290565b15612d315773ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b3d15612d42576040513d5f823e3d90fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b503d151580612cca5750813b1515612cca565b60027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005414612dcc5760027f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b91908015612e1357612e09612e1091846131d5565b80936129ef565b90565b505f9190565b9073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169173ffffffffffffffffffffffffffffffffffffffff82169183831480612f88575b15612ec957505050803b15610644575f906004604051809481937fd0e30db00000000000000000000000000000000000000000000000000000000083525af18015611d0d57612ebf5750565b5f612937916128b5565b919390925073ffffffffffffffffffffffffffffffffffffffff604051937f23b872dd000000000000000000000000000000000000000000000000000000005f52166004523060245260445260205f60648180855af19060015f5114821615612f69575b50906040525f60605215612f3e5750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6001821516612f7f573b15153d1516165f612f2d565b823d5f823e3d90fd5b5084341015612e73565b919392937f000000000000000000000000000000000000000000000000000000000000000094612fdd612fc58784612df4565b9050612fd086612abb565b90549060031b1c906132d5565b905f82600f0b13156130d257613006918486600754600854600f0b6130006128f6565b9161356e565b91909261302583946130188197612abb565b90549060031b1c9061320e565b925f928498806130b1575b5088116130535761304361305092612abb565b90549060031b1c906134ff565b94565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f737761703a207472616e736665722065786365656473206d61780000000000006044820152fd5b9098506130c0919350846131d5565b916130cb8385612ad3565b975f613030565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f737761703a20696e70757420746f6f20736d616c6c20616674657220666565006044820152fd5b1561313757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4c4d53523a2069647800000000000000000000000000000000000000000000006044820152fd5b90600954821015612a5e5760095f52600182901c7f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019160041b60101690565b908015613208576131e5916129fc565b620f4240810190818111611deb57620f423f01908111611deb57620f4240900490565b50505f90565b61322261321b83836134ff565b92836132d5565b90600f0b90600f0b126132325790565b60018101809111611deb5790565b90600f0b90600f0b017fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061327e575b1561064457600f0b90565b506f7fffffffffffffffffffffffffffffff811315613273565b90600f0b90600f0b037fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061327e571561064457600f0b90565b81156106445777ffffffffffffffffffffffffffffffffffffffffffffffff811161334d57906133079160401b612a0f565b6fffffffffffffffffffffffffffffffff8111610644576fffffffffffffffffffffffffffffffff166f7fffffffffffffffffffffffffffffff811161064457600f0b90565b60c09181831c80936401000000008210156134f2575b600282620100006133f09410156134e6575b6101008110156134da575b60108110156134ce575b60048110156134c3575b10156134bb575b8360017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4184011c019160ff031b612a0f565b926fffffffffffffffffffffffffffffffff8411610644578160801c8402906fffffffffffffffffffffffffffffffff8316850290809460401b90828210613491575b5003928160801b91828510613468575b60801c0361345d576134559203612a0f565b905b01613307565b505050600190613457565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190613443565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0194505f613433565b60010161339b565b91810191811c613394565b6004928301921c61338a565b6008928301921c613380565b6010928301921c613375565b505060e082811c90613363565b811561320857600f0b5f8112610644576fffffffffffffffffffffffffffffffff8216810260401c9160801c0277ffffffffffffffffffffffffffffffffffffffffffffffff81116106445760401b81198111610644570190565b8051821015612a5e5760209160051b010190565b61358a909793969491979592958088109081613c0a5750613130565b81935f965f975b87518910156135bc576135b46001916135aa8b8b61355a565b51600f0b90613240565b980197613591565b909294975097909294975f81600f0b1315613bac576135da91613c14565b9384600f0b5f811315613b4e57801561064457700100000000000000000000000000000000057fffffffffffffffffffffffffffffffff8000000000000000000000000000000081121580613b34575b1561064457600f0b915f61363e868961355a565b51600f0b1315613ad6576136798361367461365c61367e948b61355a565b51600f0b61366a898c61355a565b51600f0b90613298565b613c14565b613c54565b9283600f0b905f821315613a785780600f0b5f8113613877575b505050906136a591613c14565b80600f0b6820000000000000000081136137f3577fffffffffffffffffffffffffffffffff8000000000000000000000000000000014610644576136ed905f03600f0b613c54565b600f0b6801000000000000000003907fffffffffffffffffffffffffffffffff80000000000000000000000000000000821215806137d9575b156106445761373891600f0b90613c14565b600f0b68010000000000000000017fffffffffffffffffffffffffffffffff80000000000000000000000000000000811215806137bf575b1561064457600f0b925f8413156137ab57505061378f61379592613cb6565b90613c14565b905f82600f0b13156137a357565b5f9250829150565b9091506137b8925061355a565b51600f0b90565b506f7fffffffffffffffffffffffffffffff811315613770565b506f7fffffffffffffffffffffffffffffff821315613726565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4c4d53523a20612f6220746f6f206c617267652028776f756c64206f7665726660448201527f6c6f7720657870290000000000000000000000000000000000000000000000006064820152fd5b5f8312613a1a57821590811561388e575b50613698565b83909b949b1315613996576106445760401b60170b057fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061397c575b1561064457600f0b5f81131561391e576138ea6138f091613cb6565b86613c14565b9780600f0b89600f0b125f146139125750506136a590875b90915f8080613888565b6136a592919850613908565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4c4d53523a20726174696f3c3d300000000000000000000000000000000000006044820152fd5b506f7fffffffffffffffffffffffffffffff8113156138ce565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4c4d53523a206c696d69745072696365203c3d2063757272656e74207072696360448201527f65000000000000000000000000000000000000000000000000000000000000006064820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4c4d53523a2072303c30000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4c4d53523a2072303c3d300000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4c4d53523a20655f6a3d3d3000000000000000000000000000000000000000006044820152fd5b506f7fffffffffffffffffffffffffffffff81131561362a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4c4d53523a20623c3d30000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c4d53523a2073697a65206d6574726963207a65726f000000000000000000006044820152fd5b905082105f6108a5565b90600f0b90600f0b0260401d7fffffffffffffffffffffffffffffffff800000000000000000000000000000008112158061327e571561064457600f0b90565b600f0b68400000000000000000811215610644577fffffffffffffffffffffffffffffffffffffffffffffffc000000000000000008112613cb157700171547652b82fe1777d0ffda0d23a7d12612e10910260801d600f0b613de3565b505f90565b600f0b5f811315610644575f908068010000000000000000821215613dd6575b806401000000006002921215613dca575b62010000811215613dbe575b610100811215613db2575b6010811215613da6575b6004811215613d9b575b1215613d91575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0820160401b91607f031b90678000000000000000915b5f8313613d7557506fb17217f7d1cf79abc9e3b39803f2f6af9150600f0b0260801d90565b8002908160ff1c9182607f011c918302019160011d9190613d50565b9060010190613d19565b92810192811d613d12565b6004938401931d613d08565b6008938401931d613cfe565b6010938401931d613cf3565b6020938401931d613ce7565b506040915080821d613cd6565b80600f0b68400000000000000000811215610644577fffffffffffffffffffffffffffffffffffffffffffffffc000000000000000008112613208576f80000000000000000000000000000000915f6780000000000000008216600f0b136149df575b5f6740000000000000008216600f0b136149c2575b5f6720000000000000008216600f0b136149a5575b5f6710000000000000008216600f0b13614988575b5f6708000000000000008216600f0b1361496b575b5f6704000000000000008216600f0b1361494e575b5f6702000000000000008216600f0b13614931575b5f6701000000000000008216600f0b13614914575b5f66800000000000008216600f0b136148f7575b5f66400000000000008216600f0b136148da575b5f66200000000000008216600f0b136148bd575b5f66100000000000008216600f0b136148a0575b5f66080000000000008216600f0b13614883575b5f66040000000000008216600f0b13614866575b5f66020000000000008216600f0b13614849575b5f66010000000000008216600f0b1361482c575b5f658000000000008216600f0b1361480f575b5f654000000000008216600f0b136147f2575b5f652000000000008216600f0b136147d5575b5f651000000000008216600f0b136147b8575b5f650800000000008216600f0b1361479b575b5f650400000000008216600f0b1361477e575b5f650200000000008216600f0b13614761575b5f650100000000008216600f0b13614744575b5f6480000000008216600f0b13614727575b5f6440000000008216600f0b1361470a575b5f6420000000008216600f0b136146ed575b5f6410000000008216600f0b136146d0575b5f6408000000008216600f0b136146b3575b5f6404000000008216600f0b13614696575b5f6402000000008216600f0b13614679575b5f6401000000008216600f0b1361465c575b5f63800000008216600f0b1361463f575b5f63400000008216600f0b13614622575b5f63200000008216600f0b13614605575b5f63100000008216600f0b136145e8575b5f63080000008216600f0b136145cb575b5f63040000008216600f0b136145ae575b5f63020000008216600f0b13614591575b5f63010000008216600f0b13614574575b5f628000008216600f0b13614557575b5f624000008216600f0b1361453a575b5f622000008216600f0b1361451d575b5f621000008216600f0b13614500575b5f620800008216600f0b136144e3575b5f620400008216600f0b136144c6575b5f620200008216600f0b136144a9575b5f620100008216600f0b1361448c575b5f6180008216600f0b1361446f575b5f6140008216600f0b13614452575b5f6120008216600f0b13614435575b5f6110008216600f0b13614418575b5f6108008216600f0b136143fb575b5f6104008216600f0b136143de575b5f6102008216600f0b136143c1575b5f6101008216600f0b136143a4575b5f60808216600f0b13614387575b5f60408216600f0b1361436a575b5f60208216600f0b1361434d575b5f60108216600f0b13614330575b5f60088216600f0b13614313575b5f60048216600f0b136142f6575b5f60028216600f0b136142d8575b60015f9116600f0b136142bb575b60401d600f0b603f03600f0b1c6f7fffffffffffffffffffffffffffffff811161064457600f0b90565b9070010000000000000000b17217f7d1cf79ab0260801c90614291565b7001000000000000000162e42fefa39ef35890920260801c91614283565b9170010000000000000002c5c85fdf473de6b20260801c91614275565b91700100000000000000058b90bfbe8e7bcd6d0260801c91614267565b917001000000000000000b17217f7d1cf79afa0260801c91614259565b91700100000000000000162e42fefa39ef366f0260801c9161424b565b917001000000000000002c5c85fdf473de6eca0260801c9161423d565b9170010000000000000058b90bfbe8e7bce5440260801c9161422f565b91700100000000000000b17217f7d1cf79e9490260801c91614221565b9170010000000000000162e42fefa39ef44d910260801c91614212565b91700100000000000002c5c85fdf473dea871f0260801c91614203565b917001000000000000058b90bfbe8e7bdcbe2e0260801c916141f4565b9170010000000000000b17217f7d1cf7d83c1a0260801c916141e5565b917001000000000000162e42fefa39f02b772c0260801c916141d6565b9170010000000000002c5c85fdf473e242ea380260801c916141c7565b91700100000000000058b90bfbe8e7cc35c3f00260801c916141b8565b917001000000000000b17217f7d1cfb72b45e10260801c916141a9565b91700100000000000162e42fefa39fe95583c20260801c91614199565b917001000000000002c5c85fdf4741bea6e77e0260801c91614189565b9170010000000000058b90bfbe8e8b2d3d4ede0260801c91614179565b91700100000000000b17217f7d1d351a389d400260801c91614169565b9170010000000000162e42fefa3ae53369388c0260801c91614159565b91700100000000002c5c85fdf477b662b269450260801c91614149565b917001000000000058b90bfbe8f71cb4e4b33d0260801c91614139565b9170010000000000b17217f7d20cf927c8e94c0260801c91614129565b917001000000000162e42fefa494f1478fde050260801c91614118565b9170010000000002c5c85fdf4b15de6f17eb0d0260801c91614107565b91700100000000058b90bfbe9ddbac5e109cce0260801c916140f6565b917001000000000b17217f7d5a7716bba4a9ae0260801c916140e5565b91700100000000162e42fefb2fed257559bdaa0260801c916140d4565b917001000000002c5c85fdf84bd62ae30a74cc0260801c916140c3565b9170010000000058b90bfbf8479bd5a81b51ad0260801c916140b2565b91700100000000b17217f80f4ef5aadda455540260801c916140a1565b9170010000000162e42ff0999ce3541b9fffcf0260801c9161408f565b91700100000002c5c85fe31f35a6a30da1be500260801c9161407d565b917001000000058b90bfcdee5acd3c1cedc8230260801c9161406b565b9170010000000b17217fba9c739aa5819f44f90260801c91614059565b917001000000162e42fff037df38aa2b219f060260801c91614047565b9170010000002c5c8601cc6b9e94213c72737a0260801c91614035565b91700100000058b90c0b48c6be5df846c5b2ef0260801c91614023565b917001000000b1721835514b86e6d96efd1bfe0260801c91614011565b91700100000162e430e5a18f6119e3c02282a50260801c91613ffe565b917001000002c5c863b73f016468f6bac5ca2b0260801c91613feb565b9170010000058b90cf1e6d97f9ca14dbcc16280260801c91613fd8565b91700100000b1721bcfc99d9f890ea069117630260801c91613fc5565b9170010000162e43f4f831060e02d839a9d16d0260801c91613fb2565b91700100002c5c89d5ec6ca4d7c8acc017b7c90260801c91613f9f565b917001000058b91b5bc9ae2eed81e9b7d4cfab0260801c91613f8c565b9170010000b17255775c040618bf4a4ade83fc0260801c91613f79565b917001000162e525ee054754457d59952920260260801c91613f65565b9170010002c5cc37da9491d0985c348c68e7b30260801c91613f51565b91700100058ba01fb9f96d6cacd4b180917c3d0260801c91613f3d565b917001000b175effdc76ba38e31671ca9397250260801c91613f29565b91700100162f3904051fa128bca9c55c31e5df0260801c91613f15565b917001002c605e2e8cec506d21bfc89a23a00f0260801c91613f01565b9170010058c86da1c09ea1ff19d294cf2f679b0260801c91613eed565b91700100b1afa5abcbed6129ab13ec11dc95430260801c91613ed9565b9170010163da9fb33356d84a66ae336dcdfa3f0260801c91613ec4565b91700102c9a3e778060ee6f7caca4f7a29bde80260801c91613eaf565b917001059b0d31585743ae7c548eb68ca417fd0260801c91613e9a565b9170010b5586cf9890f6298b92b71842a983630260801c91613e85565b917001172b83c7d517adcdf7c8c50eb14a791f0260801c91613e70565b917001306fe0a31b7152de8d5a46305c85edec0260801c91613e5b565b6fb504f333f9de6484597d89b3754abe9f9250613e4656fea26469706673582212204b495fb5ab2f70ef9827469b408fbc37b60897cc1daf5dc94e98d0100d177d8b64736f6c634300081e0033","sourceMap":"2482:19258:55:-:0;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;505:62:53;;:::i;:::-;2482:19258:55;1993:22:52;;1989:91;;2482:19258:55;;;;;;;;;;;1104:49:53;;;;2482:19258:55;;1989:91:52;2482:19258:55;2038:31:52;;;;2482:19258:55;;;2038:31:52;2482:19258:55;;;;;;;;;;;;;;;;;;;4708:9;2482:19258;;;;;;;;;;;;;;;;;;5051:10;2482:19258;;5051:10;:::i;:::-;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;2797:11:42;2482:19258:55;;;2797:27:42;2482:19258:55;-1:-1:-1;2482:19258:55;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10802:77;2482:19258;;;;;;;10802:77;:::i;:::-;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4343:20;2482:19258;;;;;;;;;;;;;17705:54;2482:19258;;:::i;:::-;;;;:::i;:::-;;;;17418:254;17454:35;2482:19258;17418:254;;;2482:19258;;17418:254;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;17620:12;2482:19258;;;;17646:16;2482:19258;;;;;17418:254;;;;;;:::i;:::-;2482:19258;17742:9;2482:19258;17705:54;:::i;:::-;2482:19258;;;17776:29;;;;;;;;;;2482:19258;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2989:103:37;;:::i;:::-;3462:27:57;2482:19258:55;3471:7:57;2482:19258:55;;3470:8:57;3462:27;:::i;:::-;11329:13:55;;:44;;;;;2482:19258;;;;;11609:77;;2482:19258;;;;;;11609:77;:::i;:::-;2482:19258;;;;;;;;;;;11765:24;;;:::i;:::-;2482:19258;;;;;;;;;;;11817:25;;;:::i;:::-;2482:19258;;;;;;;;11941:19;;;;;;:::i;:::-;2482:19258;12072:36;2482:19258;;12072:36;:::i;:::-;2482:19258;;;;;;;;12111:34;;;:::i;:::-;2482:19258;;;;;;12072:73;;;:::i;:::-;:95;;;;:::i;:::-;2482:19258;12197:37;2482:19258;;12197:37;:::i;:::-;2482:19258;;;;;;;;12237:35;;;:::i;:::-;2482:19258;;;;;;12197:75;;;:::i;:::-;:91;;;;:::i;:::-;12372:16;:20;;;;;13007:87;12372:35;13047:47;12372:35;12817:85;12372:35;;12856:46;12372:35;;;2482:19258;12368:250;;2482:19258;;;12724:83;12745:34;2482:19258;;12745:34;:::i;:::-;2482:19258;;;;;;12732:47;;;12724:83;:::i;:::-;12868:34;2482:19258;;12868:34;:::i;:::-;2482:19258;;;;;;12856:46;;:::i;:::-;12817:36;2482:19258;;12817:36;:::i;:::-;:85;2482:19258;;;;;;;;;;;;;;;;;;;12817:85;12913:84;12934:35;2482:19258;;12934:35;:::i;12913:84::-;13059:35;2482:19258;;13059:35;:::i;13047:47::-;13007:37;2482:19258;;13007:37;:::i;:87::-;30405:52:49;13181:5:55;2482:19258;;;;30413:13:49;:30;;;;2482:19258:55;30405:52:49;;:::i;:::-;2482:19258:55;;;;30475:20:49;2482:19258:55;;;;;;;30537:21:49;2482:19258:55;;;30685:46:49;2482:19258:55;30630:45:49;30647:28;30702:29;2482:19258:55;30647:14:49;2482:19258:55;;30647:14:49;:::i;:::-;2482:19258:55;;;;;;;;30647:28:49;:::i;:::-;30630:14;2482:19258:55;;30630:14:49;:::i;:::-;:45;2482:19258:55;;;;;;;;;;;;;;;;;;;;;30630:45:49;30702:14;2482:19258:55;;30702:14:49;:::i;:::-;2482:19258:55;;;;;;;;30702:29:49;:::i;:::-;30685:14;2482:19258:55;;30685:14:49;:::i;:46::-;6061:32:57;;;2482:19258:55;6057:265:57;;;2482:19258:55;6110:13:57;2482:19258:55;6110:30:57;;;;;2482:19258:55;;;;;;;6110:30:57;;;;;2482:19258:55;6110:30:57;;2482:19258:55;6110:30:57;;2482:19258:55;6110:30:57;;;;;;;;;;;6057:265;6168:32;;;;;;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;13406:76;6057:265:57;;2482:19258:55;;;13406:76;2482:19258;;;;;;;;;;;;;;13406:76;;2482:19258;1505:66:37;2407:1;3331:21:57;3365:7;;;;3362:57;;6057:265;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3362:57:57;3386:33;;;;;;;;;;3362:57;3394:10;3386:33;;;;;3362:57;;;;3386:33;2482:19258:55;;;;;;;;;;3386:33:57;;;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6110:30:57;;;;;:::i;:::-;2482:19258:55;;6110:30:57;;;;2482:19258:55;;;;6110:30:57;2482:19258:55;;;;;;;;;6110:30:57;2482:19258:55;;;6057:265:57;2482:19258:55;8544:1067:32;8509:24;8544:1067;;2482:19258:55;8544:1067:32;;2482:19258:55;8544:1067:32;;2482:19258:55;8544:1067:32;2482:19258:55;8544:1067:32;2482:19258:55;8544:1067:32;;;;;;2482:19258:55;8544:1067:32;;;;;;;;6057:265:57;2482:19258:55;8544:1067:32;1305:38;1301:116;;2482:19258:55;;13406:76;6057:265:57;;;1301:116:32;2482:19258:55;1366:40:32;;;;;2482:19258:55;;1366:40:32;8544:1067;;2482:19258:55;8544:1067:32;;;;;;;;;;;;;;;;;-1:-1:-1;8544:1067:32;;;;;;;6061:32:57;6080:13;2482:19258:55;6080:13:57;2482:19258:55;6071:22:57;;6061:32;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30413:30:49;2482:19258:55;;;;30430:13:49;30413:30;;;12368:250:55;12475:9;12445:26;;;;:::i;:::-;2482:19258;12511:14;12507:101;;12368:250;;;;12507:101;12545:48;2482:19258;12545:48;:34;2482:19258;;12545:34;:::i;:::-;2482:19258;;;;;;;;;12545:48;:::i;:::-;2482:19258;;;;;;;;;;;;;;;;;;12545:48;12507:101;;;12372:35;12396:11;;;;12372:35;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;11329:44;11346:15;;;:27;;11329:44;;;2482:19258;;;;;;;;;;;;;9780:54;2482:19258;;:::i;:::-;;;;:::i;:::-;;;;9581:167;9617:31;2482:19258;9581:167;;;2482:19258;;9581:167;;2482:19258;;;;;;;;;;;;;;;;;;;9581:167;;;;;;:::i;2482:19258::-;;;;;;;;;;;;2624:5:42;2482:19258:55;;:::i;:::-;;;735:10:34;;2624:5:42;:::i;:::-;2482:19258:55;;;;;;;;;;;;;;;;;;;2989:103:37;;:::i;:::-;21438:54:55;2482:19258;;21338:46;21302:126;;;;2482:19258;21398:20;2482:19258;21302:126;;;2482:19258;21302:126;;;;;;;:::i;21438:54::-;;2365:1:37;1505:66;2407:1;2482:19258:55;;;;;;;;;;;;;;;;;;1276:7:42;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;1276:7:42;2482:19258:55;;;;;-1:-1:-1;2482:19258:55;;;;;;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1276:7:42;2482:19258:55;;;;;;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4933:9;2482:19258;;;;;;;;;;;;;;;;;5163:7;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;16537:54;2482:19258;;;;16199:306;16235:38;2482:19258;16199:306;;;2482:19258;;16199:306;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16453:12;2482:19258;;;;16479:16;2482:19258;;;;;16199:306;;;;;;:::i;:::-;2482:19258;16574:9;2482:19258;16537:54;:::i;:::-;2482:19258;;;;;16608:45;;2482:19258;;;;16608:45;2482:19258;16608:45;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;505:62:53;;:::i;:::-;2482:19258:55;;;;;;;;;;1104:49:53;;;;2482:19258:55;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;2260:9:42;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;5287:7;2482:19258;;;;;;;;5287:7;2482:19258;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8879:54;2482:19258;;:::i;:::-;;;;8700:147;8736:38;2482:19258;8700:147;;;2482:19258;;8700:147;;2482:19258;;;;;;;8832:5;2482:19258;;;;;;;8700:147;;;;;;:::i;2482:19258::-;;;;;;;;;;;;;;;3401:5;2482:19258;;;;;;;;;;;;;;;;;;;;4097:16;2482:19258;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;10320:54;2482:19258;;;;10106:182;10142:31;2482:19258;10106:182;;;2482:19258;;10106:182;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;10106:182;;;;;;:::i;10320:54::-;2482:19258;;10391:31;;;2482:19258;10391:31;;;;2482:19258;;;;;;10391:31;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2989:103:37;;;:::i;:::-;3462:27:57;2482:19258:55;3471:7:57;2482:19258:55;;3470:8:57;3462:27;:::i;:::-;2482:19258:55;;;;;19876:30;;19900:4;2482:19258;19876:30;;2482:19258;;19876:30;2482:19258;19876:30;;;;;;;;;2482:19258;19876:30;;;2482:19258;19866:40;;;2482:19258;;;;;19938:27;2482:19258;;;;;;19990:15;;;2482:19258;;;;;;;;;;20087:34;20107:13;20087:34;;:::i;:::-;20183:16;;;:20;;;:31;;;2482:19258;20179:237;;2482:19258;6057:265:57;2482:19258:55;8544:1067:32;8509:24;6057:265:57;8544:1067:32;;2482:19258:55;8544:1067:32;;2482:19258:55;8544:1067:32;2482:19258:55;6057:265:57;2482:19258:55;8544:1067:32;;;;;;2482:19258:55;6057:265:57;8544:1067:32;;;;;;;2482:19258:55;;8544:1067:32;1305:38;1301:116;;2482:19258:55;;;;;;;;;20497:67;;;;;2482:19258;20497:67;;20518:10;2482:19258;20497:67;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20497:67;;;2482:19258;20497:67;;;;;;;2482:19258;20497:67;;;2482:19258;19090:45;20497:93;;;2482:19258;;;20645:12;;;2482:19258;20645:12;;;;:::i;:::-;;;:::i;:::-;2482:19258;;20744:30;;;;2482:19258;20744:30;;19900:4;2482:19258;20744:30;;2482:19258;20744:30;;;;;;;2482:19258;20744:30;;;2482:19258;20849:29;20916:31;20950:40;20916:74;20849:29;20829:77;20849:29;;;:::i;20829:77::-;20961:29;;;:::i;20950:40::-;20916:31;;:::i;:74::-;2482:19258;1505:66:37;2407:1;2482:19258:55;;;;;;;20744:30;;;2482:19258;20744:30;;2482:19258;20744:30;;;;;;2482:19258;20744:30;;;:::i;:::-;;;2482:19258;;;;;;;20916:31;20744:30;;;;;-1:-1:-1;20744:30:55;;;2482:19258;;;;;;;;;20497:67;;2482:19258;20497:67;;2482:19258;20497:67;;;;;;2482:19258;20497:67;;;:::i;:::-;;;2482:19258;;;;19090:45;2482:19258;;20497:67;;;;;-1:-1:-1;20497:67:55;;1301:116:32;1366:40;;6057:265:57;1366:40:32;2482:19258:55;;;6057:265:57;1366:40:32;8544:1067;;2482:19258:55;8544:1067:32;;;;;;;;;;;;;;;;;;;6057:265:57;8544:1067:32;;;;;20179:237:55;20252:22;20278:9;20252:22;;;:::i;:::-;2482:19258;20314:14;20310:96;20179:237;20310:96;20348:43;:29;:43;:29;;;:::i;:43::-;20310:96;20179:237;;20183:31;20207:7;;;;20183:31;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19876:30;;;2482:19258;19876:30;;2482:19258;19876:30;;;;;;2482:19258;19876:30;;;:::i;:::-;;;2482:19258;;;;;19876:30;;;;;;-1:-1:-1;19876:30:55;;2482:19258;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;18925:54;2482:19258;;;;18621:271;18657:35;2482:19258;18621:271;;;2482:19258;;18621:271;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;;18840:12;2482:19258;;;;18866:16;2482:19258;;;;;18621:271;;;;;;:::i;2482:19258::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;5500:5;2482:19258;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;505:62:53;;:::i;:::-;8375:4:55;2482:19258;8365:14;2482:19258;;;8365:14;2482:19258;8394:8;2482:19258;8394:8;;2482:19258;;;;;;;;;;;;;;;3858:13;2482:19258;;;;;;;;;;;;;;;;;1997:2:42;2482:19258:55;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;6276:11:43;2482:19258:55;;;;;;735:10:34;2482:19258:55;;;;;;;;;6336:17:43;6317:36;;6313:309;;2482:19258:55;4127:5:42;;;;;:::i;6313:309:43:-;6373:24;;;6369:130;;5541:19;;5537:89;;735:10:34;5639:21:43;5635:90;;4127:5:42;2482:19258:55;;;6276:11:43;2482:19258:55;;;;;;735:10:34;2482:19258:55;;;;;;;;;;;2407:1:37;;6313:309:43;;;5635:90;5683:31;2482:19258:55;5683:31:43;2482:19258:55;;;;;5683:31:43;5537:89;5583:32;2482:19258:55;5583:32:43;2482:19258:55;;;;;5583:32:43;6369:130;6424:60;;;2482:19258:55;6424:60:43;735:10:34;2482:19258:55;;;;;;;;6424:60:43;2482:19258:55;;;;;;;;;;;;;2887:7;2482:19258;;;;;;;;;;;;;;;;;;;;;;2117:12:42;2482:19258:55;;;;;;;;;;;;;;;;;;;;;3637:12;2482:19258;;;;;;;;;;;;;;;;;;2974:13;2482:19258;;;;;;;;;;;;;;;;;:::i;:::-;;;735:10:34;;5541:19:43;5537:89;;2482:19258:55;;5639:21:43;;;5635:90;;735:10:34;2482:19258:55;;5734:11:43;2482:19258:55;;;;;;;;;;;;;;2407:1:37;2482:19258:55;;;;;5813:38:43;2482:19258:55;735:10:34;5813:38:43;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5408:6;2482:19258;;;;;;;5408:6;2482:19258;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4483:17;2482:19258;;;;;;;;4483:17;2482:19258;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;2482:19258:55;;;;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;20348:17;2482:19258;;;;;;20348:17;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;-1:-1:-1;2482:19258:55;:::o;:::-;;;;;;;;;;;20916:19;2482:19258;;;;;;20916:19;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;-1:-1:-1;2482:19258:55;:::o;:::-;11765:7;2482:19258;;;;;;11765:7;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;-1:-1:-1;2482:19258:55;:::o;:::-;14750:6;2482:19258;;;;;;14750:6;-1:-1:-1;2482:19258:55;;-1:-1:-1;2482:19258:55;;;-1:-1:-1;2482:19258:55;:::o;:::-;;;;;;;;;;:::o;19090:45::-;;;;:::o;:::-;;2482:19258;;19090:45;;;;;;;;;;;;2482:19258;19090:45;2482:19258;;;19090:45;;1110:300:43;2482:19258:55;;1193:18:43;;;1189:86;;2482:19258:55;;1288:16:43;;;1284:86;;2482:19258:55;1209:1:43;2482:19258:55;2025:9:43;2482:19258:55;;;1209:1:43;2482:19258:55;;2058:19:43;;;2054:115;;2482:19258:55;2801:32:43;2482:19258:55;;;;1209:1:43;2482:19258:55;2025:9:43;2482:19258:55;;;;1209:1:43;2482:19258:55;2407:1:37;2482:19258:55;1209:1:43;2482:19258:55;2025:9:43;2482:19258:55;;;1209:1:43;2482:19258:55;;;;;2407:1:37;;2482:19258:55;;;;;2801:32:43;1110:300::o;2054:115::-;2104:50;;1209:1;2104:50;;2482:19258:55;;;;;;1209:1:43;2104:50;1284:86;1327:32;1209:1;1327:32;1209:1;1327:32;2482:19258:55;;1209:1:43;1327:32;1189:86;1234:30;1209:1;1234:30;1209:1;1234:30;2482:19258:55;;1209:1:43;1234:30;640:170:53;2482:19258:55;699:6:53;2482:19258:55;;735:10:34;699:22:53;695:109;;640:170::o;695:109::-;744:49;699:6;744:49;735:10:34;744:49:53;2482:19258:55;;699:6:53;744:49;4691:549:33;;-1:-1:-1;4691:549:33;;3417:129:36;;;;;;;;;;4874:72:33;;4691:549;4870:364;;;4701:252:36;;;;;;;;-1:-1:-1;3417:129:36;4701:252;;;3417:129;4701:252;;;;;;4962:32:33;:::o;4870:364::-;5011:223;;;2482:19258:55;5045:24:33;;-1:-1:-1;5045:24:33;2482:19258:55;5045:24:33;2482:19258:55;;-1:-1:-1;5045:24:33;5011:223;4463:73:36;5090:33:33;4463:73:36;;2482:19258:55;;;-1:-1:-1;2482:19258:55;;;;;5086:148:33;5204:19;-1:-1:-1;5204:19:33;;-1:-1:-1;5204:19:33;4874:72;-1:-1:-1;4463:73:36;4886:33:33;;;4874:72;4886:59;4923:18;;;:22;;4874:72;;3749:292:37;2407:1;1505:66;2482:19258:55;4560:63:37;3644:93;;2407:1;1505:66;2407:1;3749:292::o;3644:93::-;3696:30;-1:-1:-1;3696:30:37;;-1:-1:-1;3696:30:37;903:262:59;;;1026:11;;1022:59;;1100:23;1143:15;1100:23;;;:::i;:::-;1143:15;;;:::i;:::-;903:262;:::o;1022:59::-;1053:17;1036:1;1053:17;;:::o;5374:278:57:-;;2482:19258:55;5478:13:57;2482:19258:55;;;;;5469:22:57;;;;:45;;;5374:278;5465:180;;;5529:37;;;;;;;;;2482:19258:55;5529:37:57;2482:19258:55;;5529:37:57;;;;2482:19258:55;5529:37:57;;;;;;;;;;5465:180;5374:278::o;5529:37::-;;;;;:::i;5465:180::-;1767:47:32;;;;;2482:19258:55;10404:1148:32;;;10365:28;-1:-1:-1;10404:1148:32;;;;5631:4:57;10404:1148:32;;;;;-1:-1:-1;10404:1148:32;;;;;;;1809:4;-1:-1:-1;10404:1148:32;;;;;;;5465:180:57;10404:1148:32;;;;-1:-1:-1;10404:1148:32;;1766:48;1762:126;;5465:180:57;5374:278::o;1762:126:32:-;1837:40;-1:-1:-1;1837:40:32;10404:1148;2482:19258:55;10404:1148:32;-1:-1:-1;1837:40:32;10404:1148;1809:4;10404:1148;;;;;;;;;;;;;;;;;;-1:-1:-1;10404:1148:32;;;;;5469:45:57;5495:9;;;:19;;5469:45;;14059:1775:55;;;;;14626:12;14601:38;3878:32:57;14601:38:55;;;;:::i;:::-;14750:23;;;;;:::i;:::-;2482:19258;;;;;;3878:32:57;;:::i;:::-;2482:19258:55;-1:-1:-1;2482:19258:55;;;14792:26;2482:19258;;;3963:78:49;2482:19258:55;;;21679:5;2482:19258;3999:7:49;2482:19258:55;;;;;:::i;:::-;3963:78:49;;:::i;:::-;15034:132:55;;;15258:66;15034:132;;15300:23;15034:132;15300:23;;:::i;:::-;2482:19258;;;;;;15258:66;;:::i;:::-;15408:11;-1:-1:-1;15429:27:55;;15470:16;;15466:130;;14059:1775;15648:22;;;2482:19258;;15802:24;4193:40:57;15802:24:55;;:::i;:::-;2482:19258;;;;;;4193:40:57;;:::i;:::-;14059:1775:55;:::o;2482:19258::-;;;;;;;;;;;;;;;;;;;;;;;15466:130;15512:41;;;;;;;;;:::i;:::-;15567:18;;;;;:::i;:::-;15466:130;;;;2482:19258;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;30647:11:49;2482:19258:55;;;;;;30647:11:49;-1:-1:-1;2482:19258:55;;;;;;;;;;;;;:::o;403:228:59:-;;494:11;;490:25;;585:10;;;:::i;:::-;598:9;2482:19258:55;;;;;;;;;;;;;;;598:9:59;2482:19258:55;;403:228:59;:::o;490:25::-;507:8;;2482:19258:55;507:8:59;:::o;4339:600:57:-;4678:36;4505:40;;;;:::i;:::-;4678:36;;;:::i;:::-;2482:19258:55;;;;;;4827:30:57;4823:82;;4339:600;:::o;4823:82::-;4893:1;2482:19258:55;;;;;;;4873:21:57;:::o;3517:219:0:-;;2482:19258:55;;;;;;805:35:0;3652:19;;;:42;;;3517:219;2482:19258:55;;;;;3517:219:0;:::o;3652:42::-;3675:19;958:34;3675:19;;;3652:42;;3949:219;;2482:19258:55;;;;;;805:35:0;4084:19;;;:42;;;2482:19258:55;;;;;3949:219:0;:::o;8689:233::-;8790:6;;2482:19258:55;;23319:50:0;23314:55;;23319:50;;2482:19258:55;23388:13:0;2482:19258:55;23394:2:0;2482:19258:55;23388:13:0;:::i;:::-;24377:34;24367:44;;2482:19258:55;;24377:34:0;2482:19258:55;958:34:0;8851:29;;2482:19258:55;;;;8689:233:0;:::o;23310:1040::-;23438:3;2482:19258:55;;;;;23486:17:0;23492:11;23486:17;;;23482:48;;23310:1040;23746:3;23543:13;23549:7;23811:45;23543:13;;;23539:44;;23310:1040;23602:5;23596:11;;;23592:40;;23310:1040;23651:4;23645:10;;;23641:39;;23310:1040;23699:3;23693:9;;;23689:38;;23310:1040;23740:9;;23736:23;;23310:1040;2482:19258:55;23836:1:0;2482:19258:55;;;;;;;;;;;;23811:45:0;:::i;:::-;23875:44;23885:34;23875:44;;2482:19258:55;;;23959:3:0;2482:19258:55;;;23996:38:0;23885:34;23996:38;;2482:19258:55;;24046:21:0;;2482:19258:55;24095:2:0;2482:19258:55;24112:7:0;;;;24108:20;;23310:1040;2482:19258:55;;;;23959:3:0;2482:19258:55;24221:7:0;;;;24217:20;;23310:1040;23959:3;2482:19258:55;24313:15:0;2482:19258:55;;24331:6:0;2482:19258:55;;24331:6:0;:::i;:::-;24313:28;;2482:19258:55;23310:1040:0;;24313:28;;;;23836:1;24313:28;;;24217:20;2482:19258:55;;;24217:20:0;;;24108;2482:19258:55;;;-1:-1:-1;24108:20:0;;;23736:23;23758:1;2482:19258:55;23736:23:0;;23689:38;2482:19258:55;;;;;;23689:38:0;;23641:39;23666:1;2482:19258:55;;;;;23641:39:0;;23592:40;23618:1;2482:19258:55;;;;;23592:40:0;;23539:44;23567:2;2482:19258:55;;;;;23539:44:0;;23482:48;-1:-1:-1;;2482:19258:55;;;;;23482:48:0;;6267:513;6363:6;;6359:20;;2482:19258:55;;;6397:6:0;;2482:19258:55;;6455:34:0;6451:38;;2482:19258:55;;6495:2:0;2482:19258:55;;6547:3:0;2482:19258:55;;6575:50:0;6569:56;;2482:19258:55;;6495:2:0;2482:19258:55;;;6661:85:0;;2482:19258:55;;;6267:513:0;:::o;43281:19:49:-;2482:19258:55;;43281:19:49;;;;;;;;;;;;:::o;5405:3864::-;5678:48;5405:3864;;;;;;;;;;5686:11;;;:26;;;;5678:48;;:::i;:::-;5824:12;43784:24;2482:19258:55;43823:10:49;2482:19258:55;43818:128:49;43823:10;2482:19258:55;;43835:20:49;;;;;43881:23;2482:19258:55;43891:12:49;;;;;:::i;:::-;43281:19;2482:19258:55;;43881:23:49;;:::i;:::-;2482:19258:55;;43823:10:49;;;43835:20;;;;;;;;;;;2482:19258:55;;;;5978:22:49;2482:19258:55;;;6048:21:49;;;:::i;:::-;2482:19258:55;;;;;6087:13:49;;2482:19258:55;;;7136:6:0;;2482:19258:55;;;;805:35:0;7206:19;;;:42;;;43818:128:49;2482:19258:55;;;;;6365:12:49;2482:19258:55;6365:12:49;;;;:::i;:::-;43281:19;2482:19258:55;;6365:24:49;43281:19;;;6499:40;:12;:30;:12;43497:20;6499:12;;;:::i;:::-;43281:19;2482:19258:55;;6516:12:49;;;;:::i;:::-;43281:19;2482:19258:55;;6499:30:49;;:::i;:::-;:40;:::i;:::-;43497:20;:::i;:::-;2482:19258:55;;;;6558:14:49;2482:19258:55;6558:14:49;;43281:19;;;2482:19258:55;;;;6898:22:49;;6894:1403;;43818:128;8401:11;;;;;;;:::i;:::-;2482:19258:55;;;43406:20:49;8512:19;;43406:20;;805:35:0;9170:14;2482:19258:55;;43497:20:49;2482:19258:55;;;;;43497:20:49;:::i;:::-;2482:19258:55;;;;4084:19:0;805:35;4084:19;;;:42;;;43818:128:49;2482:19258:55;;;8813:22:49;2482:19258:55;;;8813:22:49;;:::i;:::-;2482:19258:55;;;;805:35:0;3652:19;;;:42;;;43818:128:49;2482:19258:55;;;;;8951:18:49;2482:19258:55;8951:18:49;;;8947:112;;43589:19;;;9125:14;43589:19;;:::i;:::-;9125:14;;:::i;:::-;2482:19258:55;;;;;9209:14:49;;9205:58;;5405:3864::o;9205:58::-;2482:19258:55;;-1:-1:-1;2482:19258:55;;-1:-1:-1;9239:13:49:o;8947:112::-;8999:12;;;;;;;:::i;:::-;43281:19;2482:19258:55;;9025:23:49;:::o;3652:42:0:-;3675:19;958:34;3675:19;;;3652:42;;4084;4107:19;958:34;4107:19;;;4084:42;;43406:20:49;;7182:2:0;2482:19258:55;43406:20:49;;;;;;;;;;;;2482:19258:55;43406:20:49;2482:19258:55;;;43406:20:49;;;;;;;6894:1403;2482:19258:55;7040:15:49;;43281:19;;7088:15;;7084:1203;;;;;6894:1403;;;;7084:1203;7373:16;;;;;;;7369:106;;2482:19258:55;;7182:2:0;2482:19258:55;;;;805:35:0;7206:19;;;:42;;;7084:1203:49;2482:19258:55;;;;;;7657:28:49;;43281:19;;;43589;7853:18;43589:19;;:::i;:::-;7853:18;;:::i;:::-;2482:19258:55;;;;;;;7987:12:49;7983:290;7987:12;;;8023:19;;8401:11;8023:19;;7983:290;7084:1203;;;;;;;7983:290;8401:11;7983:290;;;;;;43281:19;;7182:2:0;2482:19258:55;43281:19:49;;;;;;;;;;;;2482:19258:55;43281:19:49;2482:19258:55;;;43281:19:49;;7206:42:0;7229:19;958:34;7229:19;;;7206:42;;7369:106:49;7413:43;7182:2:0;2482:19258:55;7413:43:49;;;43281:19;7413:43;;;43281:19;;;;;2482:19258:55;43281:19:49;2482:19258:55;;;43281:19:49;;;;;;7413:43;43281:19;;7182:2:0;2482:19258:55;43281:19:49;;;;;;;;;;;;2482:19258:55;43281:19:49;2482:19258:55;;;43281:19:49;;;;7182:2:0;2482:19258:55;43281:19:49;;;;;;;;;;;;2482:19258:55;43281:19:49;2482:19258:55;;;43281:19:49;;;;7182:2:0;2482:19258:55;43281:19:49;;;;;;;;;;;;2482:19258:55;43281:19:49;2482:19258:55;;;43281:19:49;;7206:42:0;7229:19;958:34;7229:19;;;7206:42;;2482:19258:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5686:26:49;5701:11;;;;5686:26;;;4395:225:0;;2482:19258:55;;;;;;4517:2:0;2482:19258:55;805:35:0;4536:19;;;:42;;;2482:19258:55;;;;;4395:225:0;:::o;22569:296::-;2482:19258:55;;22661:20:0;22657:24;;2482:19258:55;;;22711:21:0;22707:25;;22703:39;;22810:35;22771:83;2482:19258:55;;22849:3:0;2482:19258:55;;;22771:83:0;:::i;22703:39::-;22734:8;2482:19258:55;22734:8:0;:::o;15150:221::-;2482:19258:55;;15241:1:0;15237:5;;2482:19258:55;;;15241:1:0;14261:13;;14292:19;14286:25;;;14282:56;;15150:221;14349:17;14355:11;14599:3;14349:17;;;14345:48;;15150:221;14410:7;14404:13;;;14400:44;;15150:221;14461:5;14455:11;;;14451:40;;15150:221;14508:4;14502:10;;;14498:39;;15150:221;14554:3;14548:9;;;14544:38;;15150:221;14593:9;;14589:23;;15150:221;2482:19258:55;;;14675:2:0;2482:19258:55;;14737:3:0;2482:19258:55;;14760:31:0;14773:18;14755:176;14793:7;15241:1;14793:7;;;;2482:19258:55;15317:34:0;2482:19258:55;;;;;15355:3:0;2482:19258:55;15150:221:0;:::o;14802:9::-;2482:19258:55;;;;;;;;14737:3:0;2482:19258:55;;;;;;14802:9:0;14810:1;2482:19258:55;14760:31:0;;;;14589:23;2482:19258:55;14611:1:0;2482:19258:55;14589:23:0;;;14544:38;2482:19258:55;;;;;;14544:38:0;;14498:39;14523:1;2482:19258:55;;;;;14498:39:0;;14451:40;14477:1;2482:19258:55;;;;;14451:40:0;;14400:44;14428:2;2482:19258:55;;;;;14400:44:0;;14345:48;14377:2;2482:19258:55;;;;;14345:48:0;;14282:56;-1:-1:-1;14322:2:0;;-1:-1:-1;2482:19258:55;;;14282:56:0;;15549:6841;2482:19258:55;;;15643:20:0;15639:24;;2482:19258:55;;;15693:21:0;15689:25;;15685:39;;15763:34;15810:22;2482:19258:55;15814:18:0;15810:22;;2482:19258:55;;15810:26:0;15806:100;;15549:6841;2482:19258:55;15922:18:0;15918:22;;2482:19258:55;;15918:26:0;15914:100;;15549:6841;2482:19258:55;16030:18:0;16026:22;;2482:19258:55;;16026:26:0;16022:100;;15549:6841;2482:19258:55;16138:18:0;16134:22;;2482:19258:55;;16134:26:0;16130:100;;15549:6841;2482:19258:55;16246:17:0;16242:21;;2482:19258:55;;16242:25:0;16238:99;;15549:6841;2482:19258:55;16353:17:0;16349:21;;2482:19258:55;;16349:25:0;16345:99;;15549:6841;2482:19258:55;16460:17:0;16456:21;;2482:19258:55;;16456:25:0;16452:99;;15549:6841;2482:19258:55;16567:17:0;16563:21;;2482:19258:55;;16563:25:0;16559:99;;15549:6841;2482:19258:55;16674:16:0;16670:20;;2482:19258:55;;16670:24:0;16666:98;;15549:6841;2482:19258:55;16780:16:0;16776:20;;2482:19258:55;;16776:24:0;16772:98;;15549:6841;2482:19258:55;16886:16:0;16882:20;;2482:19258:55;;16882:24:0;16878:98;;15549:6841;2482:19258:55;16992:16:0;16988:20;;2482:19258:55;;16988:24:0;16984:98;;15549:6841;2482:19258:55;17098:15:0;17094:19;;2482:19258:55;;17094:23:0;17090:97;;15549:6841;2482:19258:55;17203:15:0;17199:19;;2482:19258:55;;17199:23:0;17195:97;;15549:6841;2482:19258:55;17308:15:0;17304:19;;2482:19258:55;;17304:23:0;17300:97;;15549:6841;2482:19258:55;17413:15:0;17409:19;;2482:19258:55;;17409:23:0;17405:97;;15549:6841;2482:19258:55;17518:14:0;17514:18;;2482:19258:55;;17514:22:0;17510:96;;15549:6841;2482:19258:55;17622:14:0;17618:18;;2482:19258:55;;17618:22:0;17614:96;;15549:6841;2482:19258:55;17726:14:0;17722:18;;2482:19258:55;;17722:22:0;17718:96;;15549:6841;2482:19258:55;17830:14:0;17826:18;;2482:19258:55;;17826:22:0;17822:96;;15549:6841;2482:19258:55;17934:13:0;17930:17;;2482:19258:55;;17930:21:0;17926:95;;15549:6841;2482:19258:55;18037:13:0;18033:17;;2482:19258:55;;18033:21:0;18029:95;;15549:6841;2482:19258:55;18140:13:0;18136:17;;2482:19258:55;;18136:21:0;18132:95;;15549:6841;2482:19258:55;18243:13:0;18239:17;;2482:19258:55;;18239:21:0;18235:95;;15549:6841;2482:19258:55;18346:12:0;18342:16;;2482:19258:55;;18342:20:0;18338:94;;15549:6841;2482:19258:55;18448:12:0;18444:16;;2482:19258:55;;18444:20:0;18440:94;;15549:6841;2482:19258:55;18550:12:0;18546:16;;2482:19258:55;;18546:20:0;18542:94;;15549:6841;2482:19258:55;18652:12:0;18648:16;;2482:19258:55;;18648:20:0;18644:94;;15549:6841;2482:19258:55;18754:11:0;18750:15;;2482:19258:55;;18750:19:0;18746:93;;15549:6841;2482:19258:55;18855:11:0;18851:15;;2482:19258:55;;18851:19:0;18847:93;;15549:6841;2482:19258:55;18956:11:0;18952:15;;2482:19258:55;;18952:19:0;18948:93;;15549:6841;2482:19258:55;19057:11:0;19053:15;;2482:19258:55;;19053:19:0;19049:93;;15549:6841;2482:19258:55;19158:10:0;19154:14;;2482:19258:55;;19154:18:0;19150:92;;15549:6841;2482:19258:55;19258:10:0;19254:14;;2482:19258:55;;19254:18:0;19250:92;;15549:6841;2482:19258:55;19358:10:0;19354:14;;2482:19258:55;;19354:18:0;19350:92;;15549:6841;2482:19258:55;19458:10:0;19454:14;;2482:19258:55;;19454:18:0;19450:92;;15549:6841;2482:19258:55;19558:9:0;19554:13;;2482:19258:55;;19554:17:0;19550:91;;15549:6841;2482:19258:55;19657:9:0;19653:13;;2482:19258:55;;19653:17:0;19649:91;;15549:6841;2482:19258:55;19756:9:0;19752:13;;2482:19258:55;;19752:17:0;19748:91;;15549:6841;2482:19258:55;19855:9:0;19851:13;;2482:19258:55;;19851:17:0;19847:91;;15549:6841;2482:19258:55;19954:8:0;19950:12;;2482:19258:55;;19950:16:0;19946:90;;15549:6841;2482:19258:55;20052:8:0;20048:12;;2482:19258:55;;20048:16:0;20044:90;;15549:6841;2482:19258:55;20150:8:0;20146:12;;2482:19258:55;;20146:16:0;20142:90;;15549:6841;2482:19258:55;20248:8:0;20244:12;;2482:19258:55;;20244:16:0;20240:90;;15549:6841;2482:19258:55;20346:7:0;20342:11;;2482:19258:55;;20342:15:0;20338:89;;15549:6841;2482:19258:55;20443:7:0;20439:11;;2482:19258:55;;20439:15:0;20435:89;;15549:6841;2482:19258:55;20540:7:0;20536:11;;2482:19258:55;;20536:15:0;20532:89;;15549:6841;2482:19258:55;20637:7:0;20633:11;;2482:19258:55;;20633:15:0;20629:89;;15549:6841;2482:19258:55;20734:6:0;20730:10;;2482:19258:55;;20730:14:0;20726:88;;15549:6841;2482:19258:55;20830:6:0;20826:10;;2482:19258:55;;20826:14:0;20822:88;;15549:6841;2482:19258:55;20926:6:0;20922:10;;2482:19258:55;;20922:14:0;20918:88;;15549:6841;2482:19258:55;21022:6:0;21018:10;;2482:19258:55;;21018:14:0;21014:88;;15549:6841;2482:19258:55;21118:5:0;21114:9;;2482:19258:55;;21114:13:0;21110:87;;15549:6841;2482:19258:55;21213:5:0;21209:9;;2482:19258:55;;21209:13:0;21205:87;;15549:6841;2482:19258:55;21308:5:0;21304:9;;2482:19258:55;;21304:13:0;21300:87;;15549:6841;2482:19258:55;21403:5:0;21399:9;;2482:19258:55;;21399:13:0;21395:87;;15549:6841;2482:19258:55;21498:4:0;21494:8;;2482:19258:55;;21494:12:0;21490:86;;15549:6841;2482:19258:55;21592:4:0;21588:8;;2482:19258:55;;21588:12:0;21584:86;;15549:6841;2482:19258:55;21686:4:0;21682:8;;2482:19258:55;;21682:12:0;21678:86;;15549:6841;2482:19258:55;21780:4:0;21776:8;;2482:19258:55;;21776:12:0;21772:86;;15549:6841;2482:19258:55;21874:3:0;21870:7;;2482:19258:55;;21870:11:0;21866:85;;15549:6841;2482:19258:55;21967:3:0;21963:7;;2482:19258:55;;21963:11:0;21959:85;;15549:6841;2482:19258:55;22060:3:0;22056:7;;2482:19258:55;;22056:11:0;22052:85;;15549:6841;22153:3;2482:19258:55;22149:7:0;;2482:19258:55;;22149:11:0;22145:85;;15549:6841;21592:4;2482:19258:55;;;22267:2:0;2482:19258:55;;;;958:34:0;22300:38;;2482:19258:55;;;;15549:6841:0;:::o;22145:85::-;2482:19258:55;22188:35:0;2482:19258:55;21498:4:0;2482:19258:55;22145:85:0;;;22052;22095:35;2482:19258:55;;;21498:4:0;2482:19258:55;;22052:85:0;;21959;2482:19258:55;22002:35:0;2482:19258:55;21498:4:0;2482:19258:55;21959:85:0;;;21866;2482:19258:55;21909:35:0;2482:19258:55;21498:4:0;2482:19258:55;21866:85:0;;;21772:86;2482:19258:55;21816:35:0;2482:19258:55;21498:4:0;2482:19258:55;21772:86:0;;;21678;2482:19258:55;21722:35:0;2482:19258:55;21498:4:0;2482:19258:55;21678:86:0;;;21584;2482:19258:55;21628:35:0;2482:19258:55;21498:4:0;2482:19258:55;21584:86:0;;;21490;2482:19258:55;21534:35:0;2482:19258:55;21498:4:0;2482:19258:55;21490:86:0;;;21395:87;2482:19258:55;21440:35:0;2482:19258:55;21479:3:0;2482:19258:55;21395:87:0;;;21300;2482:19258:55;21345:35:0;2482:19258:55;21384:3:0;2482:19258:55;21300:87:0;;;21205;2482:19258:55;21250:35:0;2482:19258:55;21289:3:0;2482:19258:55;21205:87:0;;;21110;2482:19258:55;21155:35:0;2482:19258:55;21194:3:0;2482:19258:55;21110:87:0;;;21014:88;2482:19258:55;21060:35:0;2482:19258:55;21099:3:0;2482:19258:55;21014:88:0;;;20918;2482:19258:55;20964:35:0;2482:19258:55;21003:3:0;2482:19258:55;20918:88:0;;;20822;2482:19258:55;20868:35:0;2482:19258:55;20907:3:0;2482:19258:55;20822:88:0;;;20726;2482:19258:55;20772:35:0;2482:19258:55;20811:3:0;2482:19258:55;20726:88:0;;;20629:89;2482:19258:55;20676:35:0;2482:19258:55;20715:3:0;2482:19258:55;20629:89:0;;;20532;2482:19258:55;20579:35:0;2482:19258:55;20618:3:0;2482:19258:55;20532:89:0;;;20435;2482:19258:55;20482:35:0;2482:19258:55;20521:3:0;2482:19258:55;20435:89:0;;;20338;2482:19258:55;20385:35:0;2482:19258:55;20424:3:0;2482:19258:55;20338:89:0;;;20240:90;2482:19258:55;20288:35:0;2482:19258:55;20327:3:0;2482:19258:55;20240:90:0;;;20142;2482:19258:55;20190:35:0;2482:19258:55;20229:3:0;2482:19258:55;20142:90:0;;;20044;2482:19258:55;20092:35:0;2482:19258:55;20131:3:0;2482:19258:55;20044:90:0;;;19946;2482:19258:55;19994:35:0;2482:19258:55;20033:3:0;2482:19258:55;19946:90:0;;;19847:91;2482:19258:55;19896:35:0;2482:19258:55;19935:3:0;2482:19258:55;19847:91:0;;;19748;2482:19258:55;19797:35:0;2482:19258:55;19836:3:0;2482:19258:55;19748:91:0;;;19649;2482:19258:55;19698:35:0;2482:19258:55;19737:3:0;2482:19258:55;19649:91:0;;;19550;2482:19258:55;19599:35:0;2482:19258:55;19638:3:0;2482:19258:55;19550:91:0;;;19450:92;2482:19258:55;19500:35:0;2482:19258:55;19539:3:0;2482:19258:55;19450:92:0;;;19350;2482:19258:55;19400:35:0;2482:19258:55;19439:3:0;2482:19258:55;19350:92:0;;;19250;2482:19258:55;19300:35:0;2482:19258:55;19339:3:0;2482:19258:55;19250:92:0;;;19150;2482:19258:55;19200:35:0;2482:19258:55;19239:3:0;2482:19258:55;19150:92:0;;;19049:93;2482:19258:55;19100:35:0;2482:19258:55;19139:3:0;2482:19258:55;19049:93:0;;;18948;2482:19258:55;18999:35:0;2482:19258:55;19038:3:0;2482:19258:55;18948:93:0;;;18847;2482:19258:55;18898:35:0;2482:19258:55;18937:3:0;2482:19258:55;18847:93:0;;;18746;2482:19258:55;18797:35:0;2482:19258:55;18836:3:0;2482:19258:55;18746:93:0;;;18644:94;2482:19258:55;18696:35:0;2482:19258:55;18735:3:0;2482:19258:55;18644:94:0;;;18542;2482:19258:55;18594:35:0;2482:19258:55;18633:3:0;2482:19258:55;18542:94:0;;;18440;2482:19258:55;18492:35:0;2482:19258:55;18531:3:0;2482:19258:55;18440:94:0;;;18338;2482:19258:55;18390:35:0;2482:19258:55;18429:3:0;2482:19258:55;18338:94:0;;;18235:95;2482:19258:55;18288:35:0;2482:19258:55;18327:3:0;2482:19258:55;18235:95:0;;;18132;2482:19258:55;18185:35:0;2482:19258:55;18224:3:0;2482:19258:55;18132:95:0;;;18029;2482:19258:55;18082:35:0;2482:19258:55;18121:3:0;2482:19258:55;18029:95:0;;;17926;2482:19258:55;17979:35:0;2482:19258:55;18018:3:0;2482:19258:55;17926:95:0;;;17822:96;2482:19258:55;17876:35:0;2482:19258:55;17915:3:0;2482:19258:55;17822:96:0;;;17718;2482:19258:55;17772:35:0;2482:19258:55;17811:3:0;2482:19258:55;17718:96:0;;;17614;2482:19258:55;17668:35:0;2482:19258:55;17707:3:0;2482:19258:55;17614:96:0;;;17510;2482:19258:55;17564:35:0;2482:19258:55;17603:3:0;2482:19258:55;17510:96:0;;;17405:97;2482:19258:55;17460:35:0;2482:19258:55;17499:3:0;2482:19258:55;17405:97:0;;;17300;2482:19258:55;17355:35:0;2482:19258:55;17394:3:0;2482:19258:55;17300:97:0;;;17195;2482:19258:55;17250:35:0;2482:19258:55;17289:3:0;2482:19258:55;17195:97:0;;;17090;2482:19258:55;17145:35:0;2482:19258:55;17184:3:0;2482:19258:55;17090:97:0;;;16984:98;2482:19258:55;17040:35:0;2482:19258:55;17079:3:0;2482:19258:55;16984:98:0;;;16878;2482:19258:55;16934:35:0;2482:19258:55;16973:3:0;2482:19258:55;16878:98:0;;;16772;2482:19258:55;16828:35:0;2482:19258:55;16867:3:0;2482:19258:55;16772:98:0;;;16666;2482:19258:55;16722:35:0;2482:19258:55;16761:3:0;2482:19258:55;16666:98:0;;;16559:99;2482:19258:55;16616:35:0;2482:19258:55;16655:3:0;2482:19258:55;16559:99:0;;;16452;2482:19258:55;16509:35:0;2482:19258:55;16548:3:0;2482:19258:55;16452:99:0;;;16345;2482:19258:55;16402:35:0;2482:19258:55;16441:3:0;2482:19258:55;16345:99:0;;;16238;2482:19258:55;16295:35:0;2482:19258:55;16334:3:0;2482:19258:55;16238:99:0;;;16130:100;2482:19258:55;16188:35:0;2482:19258:55;16227:3:0;2482:19258:55;16130:100:0;;;16022;2482:19258:55;16080:35:0;2482:19258:55;16119:3:0;2482:19258:55;16022:100:0;;;15914;2482:19258:55;15972:35:0;2482:19258:55;16011:3:0;2482:19258:55;15914:100:0;;;15806;2482:19258:55;;-1:-1:-1;15806:100:0;","linkReferences":{},"immutableReferences":{"53046":[{"start":5873,"length":32},{"start":5981,"length":32}],"53057":[{"start":1422,"length":32},{"start":5010,"length":32},{"start":8036,"length":32},{"start":9202,"length":32},{"start":12184,"length":32}],"53068":[{"start":6846,"length":32},{"start":8530,"length":32}],"53079":[{"start":1460,"length":32},{"start":1976,"length":32},{"start":5049,"length":32},{"start":6073,"length":32},{"start":6887,"length":32},{"start":8074,"length":32}],"53090":[{"start":1222,"length":32},{"start":4116,"length":32}],"53111":[{"start":769,"length":32},{"start":1535,"length":32}],"53124":[{"start":4629,"length":32},{"start":5126,"length":32}],"54414":[{"start":2403,"length":32},{"start":3270,"length":32},{"start":9311,"length":32},{"start":11825,"length":32}]}},"methodIdentifiers":{"LMSR()":"476e44b6","allProtocolFeesOwed()":"017504b6","allTokens()":"6ff97f1d","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,address,uint256,uint256,bool)":"6863f5bc","burnSwap(address,address,uint256,uint256,uint256,bool)":"491e7998","collectProtocolFees()":"a1af5b9a","decimals()":"313ce567","denominators()":"017cf661","flashFeePpm()":"31596a6a","flashLoan(address,address,uint256,bytes)":"5cffe9de","getToken(uint256)":"e4b50cb8","initialMint(address,uint256)":"6d8d0ff3","kappa()":"6bba3f2f","kill()":"41c0e1b5","killed()":"1f3a0e41","mint(address,address,uint256,uint256)":"b3f1c93d","mintImpl()":"f0d1ae4f","name()":"06fdde03","numTokens()":"8e499bcf","owner()":"8da5cb5b","protocolFeeAddress()":"cce516b7","protocolFeePpm()":"6b4082d1","renounceOwnership()":"715018a6","swap(address,address,uint256,uint256,uint256,int128,uint256,bool)":"bdbfec99","swapAmounts(uint256,uint256,uint256,int128)":"d516b8c6","swapFeePpm()":"10ebae83","swapMint(address,address,uint256,uint256,uint256)":"cb717f3a","swapMintImpl()":"95176066","swapToLimit(address,address,uint256,uint256,int128,uint256,bool)":"79a68d53","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","wrapperToken()":"0d246214"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens_\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"bases_\",\"type\":\"uint256[]\"},{\"internalType\":\"int128\",\"name\":\"kappa_\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"swapFeePpm_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"flashFeePpm_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"protocolFeePpm_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"protocolFeeAddress_\",\"type\":\"address\"},{\"internalType\":\"contract NativeWrapper\",\"name\":\"wrapperToken_\",\"type\":\"address\"},{\"internalType\":\"contract PartyPoolSwapImpl\",\"name\":\"swapImpl_\",\"type\":\"address\"},{\"internalType\":\"contract PartyPoolMintImpl\",\"name\":\"mintImpl_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lpBurned\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"targetTokenIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutUint\",\"type\":\"uint256\"}],\"name\":\"BurnSwap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Killed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lpMinted\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"inputTokenIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"grossTransfer\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"netInput\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeTaken\",\"type\":\"uint256\"}],\"name\":\"SwapMint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LMSR\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nAssets\",\"type\":\"uint256\"},{\"internalType\":\"int128\",\"name\":\"kappa\",\"type\":\"int128\"},{\"internalType\":\"int128[]\",\"name\":\"qInternal\",\"type\":\"int128[]\"}],\"internalType\":\"struct LMSRStabilized.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allProtocolFeesOwed\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allTokens\",\"outputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lpAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"unwrap\",\"type\":\"bool\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"withdrawAmounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lpAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"unwrap\",\"type\":\"bool\"}],\"name\":\"burnSwap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOutUint\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectProtocolFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"denominators\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"flashFeePpm\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC3156FlashBorrower\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flashLoan\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lpTokens\",\"type\":\"uint256\"}],\"name\":\"initialMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lpMinted\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kappa\",\"outputs\":[{\"internalType\":\"int128\",\"name\":\"\",\"type\":\"int128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"killed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lpTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lpMinted\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintImpl\",\"outputs\":[{\"internalType\":\"contract PartyPoolMintImpl\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeePpm\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"int128\",\"name\":\"limitPrice\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"unwrap\",\"type\":\"bool\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"int128\",\"name\":\"limitPrice\",\"type\":\"int128\"}],\"name\":\"swapAmounts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapFeePpm\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"swapMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lpMinted\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapMintImpl\",\"outputs\":[{\"internalType\":\"contract PartyPoolSwapImpl\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputTokenIndex\",\"type\":\"uint256\"},{\"internalType\":\"int128\",\"name\":\"limitPrice\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"unwrap\",\"type\":\"bool\"}],\"name\":\"swapToLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountInUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrapperToken\",\"outputs\":[{\"internalType\":\"contract NativeWrapper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"The contract stores per-token uint `_bases` used to scale token units into the internal Q64.64 representation used by the LMSR library. Cached on-chain uint balances are kept to reduce balanceOf() calls. The contract uses ceiling/floor rules described in function comments to bias rounding in favor of the pool (i.e., floor outputs to users, ceil inputs/fees where appropriate). Mutating methods have re-entrancy locks. The contract may be \\\"killed\\\" by the admin in case any security issue is discovered, in which case all swaps and mints are disabled, and only the burn() method remains functional to allow LP's to withdraw their assets.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"burn(address,address,uint256,uint256,bool)\":{\"details\":\"This function forwards the call to the burn implementation via delegatecall\",\"params\":{\"deadline\":\"timestamp after which the transaction will revert. Pass 0 to ignore.\",\"lpAmount\":\"amount of LP tokens to burn (proportional withdrawal)\",\"payer\":\"address that provides the LP tokens to burn\",\"receiver\":\"address that receives the withdrawn tokens\",\"unwrap\":\"if true and the native token is being withdrawn, it is unwraped and sent as native currency\"}},\"burnSwap(address,address,uint256,uint256,uint256,bool)\":{\"details\":\"This function forwards the call to the burnSwap implementation via delegatecall\",\"params\":{\"deadline\":\"optional deadline\",\"inputTokenIndex\":\"index of target asset to receive\",\"lpAmount\":\"amount of LP _tokens to burn\",\"payer\":\"who burns LP _tokens\",\"receiver\":\"who receives the single asset\"},\"returns\":{\"amountOutUint\":\"uint amount of asset i sent to receiver\"}},\"collectProtocolFees()\":{\"details\":\"Anyone can call; must have protocolFeeAddress != address(0) to be operational.\"},\"constructor\":{\"params\":{\"bases_\":\"scaling _bases for each token (n) - used when converting to/from internal 64.64 amounts\",\"flashFeePpm_\":\"fee in parts-per-million, taken for flash loans\",\"kappa_\":\"liquidity parameter \\u03ba (Q64.64) used to derive b = \\u03ba * S(q)\",\"mintImpl_\":\"address of the Mint implementation contract\",\"name_\":\"LP token name\",\"owner_\":\"Admin account that can disable the vault using kill()\",\"swapFeePpm_\":\"fee in parts-per-million, taken from swap input amounts before LMSR calculations\",\"swapImpl_\":\"address of the SwapMint implementation contract\",\"symbol_\":\"LP token symbol\",\"tokens_\":\"token addresses (n)\"}},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` _tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"denominators()\":{\"details\":\"denominators()[i] is the base for tokens[i]. These bases are chosen by deployer and must match token decimals.\"},\"flashLoan(address,address,uint256,bytes)\":{\"details\":\"Loan `amount` _tokens to `receiver`, and takes it back plus a `flashFee` after the callback.\",\"params\":{\"amount\":\"The amount of _tokens lent.\",\"data\":\"A data parameter to be passed on to the `receiver` for any custom use.\",\"receiver\":\"The contract receiving the _tokens, needs to implement the `onFlashLoan(address user, uint256 amount, uint256 fee, bytes calldata)` interface.\",\"tokenAddr\":\"The loan currency.\"}},\"getToken(uint256)\":{\"details\":\"tokens[i] corresponds to the i-th asset and maps to index i in the internal LMSR arrays.\"},\"initialMint(address,uint256)\":{\"details\":\"Assumes tokens have already been transferred to the pool prior to calling. Can only be called when the pool is uninitialized (totalSupply() == 0 or _lmsr.nAssets == 0).\",\"params\":{\"lpTokens\":\"The number of LP tokens to issue for this mint. If 0, then the number of tokens returned will equal the LMSR internal q total\",\"receiver\":\"address that receives the LP tokens\"}},\"kappa()\":{\"details\":\"Pools are constructed with a \\u03ba value; this getter exposes the \\u03ba used by the pool.\"},\"mint(address,address,uint256,uint256)\":{\"details\":\"This function forwards the call to the mint implementation via delegatecall\",\"params\":{\"deadline\":\"timestamp after which the transaction will revert. Pass 0 to ignore.\",\"lpTokenAmount\":\"desired amount of LP _tokens to mint\",\"payer\":\"address that provides the input _tokens\",\"receiver\":\"address that receives the LP _tokens\"}},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"protocolFeePpm()\":{\"details\":\"This is the fraction (in ppm) of the pool-collected fees that are owed to the protocol.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"swap(address,address,uint256,uint256,uint256,int128,uint256,bool)\":{\"details\":\"This function transfers the exact gross input (including fee) from payer and sends the computed output to receiver. Non-standard tokens (fee-on-transfer, rebasers) are rejected via balance checks.\",\"params\":{\"deadline\":\"timestamp after which the transaction will revert. Pass 0 to ignore.\",\"inputTokenIndex\":\"index of input asset\",\"limitPrice\":\"maximum acceptable marginal price (64.64 fixed point). Pass 0 to ignore.\",\"maxAmountIn\":\"maximum amount of token inputTokenIndex (uint256) to transfer in (inclusive of fees)\",\"outputTokenIndex\":\"index of output asset\",\"payer\":\"address of the account that pays for the swap\",\"receiver\":\"address that will receive the output tokens\"},\"returns\":{\"amountIn\":\"actual input used (uint256), amountOut actual output sent (uint256), fee fee taken from the input (uint256)\"}},\"swapAmounts(uint256,uint256,uint256,int128)\":{\"params\":{\"inputTokenIndex\":\"index of input token\",\"limitPrice\":\"maximum acceptable marginal price (pass 0 to ignore)\",\"maxAmountIn\":\"maximum gross input allowed (inclusive of fee)\",\"outputTokenIndex\":\"index of output token\"},\"returns\":{\"amountIn\":\"gross input amount to transfer (includes fee), amountOut output amount user would receive, fee fee amount taken\"}},\"swapMint(address,address,uint256,uint256,uint256)\":{\"details\":\"This function forwards the call to the swapMint implementation via delegatecall\",\"params\":{\"deadline\":\"optional deadline\",\"inputTokenIndex\":\"index of the input token\",\"maxAmountIn\":\"maximum uint token input (inclusive of fee)\",\"payer\":\"who transfers the input token\",\"receiver\":\"who receives the minted LP _tokens\"},\"returns\":{\"lpMinted\":\"actual LP minted (uint)\"}},\"swapToLimit(address,address,uint256,uint256,int128,uint256,bool)\":{\"details\":\"If balances prevent fully reaching the limit, the function caps and returns actuals. The payer must transfer the exact gross input computed by the view.\",\"params\":{\"deadline\":\"timestamp after which the transaction will revert. Pass 0 to ignore.\",\"inputTokenIndex\":\"index of input asset\",\"limitPrice\":\"target marginal price to reach (must be > 0)\",\"outputTokenIndex\":\"index of output asset\",\"payer\":\"address of the account that pays for the swap\",\"receiver\":\"address that will receive the output tokens\"},\"returns\":{\"amountInUsed\":\"actual input used excluding fee (uint256), amountOut actual output sent (uint256), fee fee taken from the input (uint256)\"}},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s _tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"KAPPA\":{\"details\":\"Pool is constructed with a fixed \\u03ba. Clients that previously passed tradeFrac/targetSlippage should use LMSRStabilized.computeKappaFromSlippage(...) to derive \\u03ba and pass it here.\"}},\"title\":\"PartyPool - LMSR-backed multi-asset pool with LP ERC20 token\",\"version\":1},\"userdoc\":{\"events\":{\"BurnSwap(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a burnSwap is executed. Records payer/receiver, target token index and the uint payout sent to the receiver.\"},\"SwapMint(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a single-token swapMint is executed. Records payer/receiver, input token index, gross transfer (net+fee), net input and fee taken.\"}},\"kind\":\"user\",\"methods\":{\"allProtocolFeesOwed()\":{\"notice\":\"Protocol fee ledger accessor. Returns tokens owed (raw uint token units) from this pool as protocol fees that have not yet been transferred out.\"},\"allTokens()\":{\"notice\":\"Returns the list of all token addresses in the pool (copy).\"},\"burn(address,address,uint256,uint256,bool)\":{\"notice\":\"Burn LP tokens and withdraw the proportional basket to receiver.\"},\"burnSwap(address,address,uint256,uint256,uint256,bool)\":{\"notice\":\"Burn LP _tokens then swap the redeemed proportional basket into a single asset `inputTokenIndex` and send to receiver.\"},\"collectProtocolFees()\":{\"notice\":\"Transfer all protocol fees to the configured protocolFeeAddress and zero the ledger.\"},\"denominators()\":{\"notice\":\"Per-token uint base denominators used to convert uint token amounts <-> internal Q64.64 representation.\"},\"flashFeePpm()\":{\"notice\":\"Flash-loan fee in parts-per-million (ppm) applied to flash borrow amounts.\"},\"getToken(uint256)\":{\"notice\":\"Token addresses comprising the pool. Effectively immutable after construction.\"},\"initialMint(address,uint256)\":{\"notice\":\"Initial mint to set up pool for the first time.\"},\"kappa()\":{\"notice\":\"Liquidity parameter \\u03ba (Q64.64) used by the LMSR kernel: b = \\u03ba * S(q)\"},\"kill()\":{\"notice\":\"If a security problem is found, the vault owner may call this function to permanently disable swap and mint functionality, leaving only burns (withdrawals) working.\"},\"killed()\":{\"notice\":\"If true, the vault has been disabled by the owner and only burns (withdrawals) are allowed.\"},\"mint(address,address,uint256,uint256)\":{\"notice\":\"Proportional mint for existing pool.\"},\"numTokens()\":{\"notice\":\"Returns the number of tokens (n) in the pool.\"},\"protocolFeeAddress()\":{\"notice\":\"Address that will receive collected protocol tokens when collectProtocolFees() is called.\"},\"protocolFeePpm()\":{\"notice\":\"Protocol fee share (ppm) applied to fees collected by the pool (floored when accrued)\"},\"swap(address,address,uint256,uint256,uint256,int128,uint256,bool)\":{\"notice\":\"Swap input token inputTokenIndex -> token outputTokenIndex. Payer must approve token inputTokenIndex.\"},\"swapAmounts(uint256,uint256,uint256,int128)\":{\"notice\":\"External view to quote exact-in swap amounts (gross input incl. fee and output), matching swap() computations\"},\"swapFeePpm()\":{\"notice\":\"Per-swap fee in parts-per-million (ppm). Fee is taken from input amounts before LMSR computations.\"},\"swapMint(address,address,uint256,uint256,uint256)\":{\"notice\":\"Single-token mint: deposit a single token, charge swap-LMSR cost, and mint LP.\"},\"swapToLimit(address,address,uint256,uint256,int128,uint256,bool)\":{\"notice\":\"Swap up to the price limit; computes max input to reach limit then performs swap.\"},\"wrapperToken()\":{\"notice\":\"Token contract used for wrapping native currency\"}},\"notice\":\"A multi-asset liquidity pool backed by the LMSRStabilized pricing model. The pool issues an ERC20 LP token representing proportional ownership. It supports: - Proportional minting and burning of LP tokens, - Exact-input swaps and swaps-to-price-limits, - Single-token mint (swapMint) and single-asset withdrawal (burnSwap), - ERC-3156 flash loans\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PartyPool.sol\":\"PartyPool\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100000000},\"remappings\":[\":@abdk/=lib/abdk-libraries-solidity/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":abdk-libraries-solidity/=lib/abdk-libraries-solidity/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/abdk-libraries-solidity/ABDKMath64x64.sol\":{\"keccak256\":\"0x1364fdc24192b982f647c7fc68dcb2f6fc1b5e201843e773144bd23a76cb3b97\",\"license\":\"BSD-4-Clause\",\"urls\":[\"bzz-raw://490712cc07db32f274899b17aade9c975f06010848c21500b8a5ead6898e09c7\",\"dweb:/ipfs/QmZMPKjDgwCFSGdLWJW6g5E7hDLByA9hNjXzAwJ4GKTZvN\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol\":{\"keccak256\":\"0x4e4b982b56b50290dd1dcaa2fef1178b1574dfc7c0f0a8ef9cb68a207d72582e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb7adc69bcb4d8ef0b001869b24e831edd411b6c5405e03c5e95ca109a7b7bcd\",\"dweb:/ipfs/QmWeXYWVPUuwVWPjLXn44PrEnv7bJg3JiVkFm7riDkgTVk\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol\":{\"keccak256\":\"0x3a3549277762438ad9a38fce50493ed8995b806f78aabff02d51b4e1671ce6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f105ec892766b8a41ece6d3b10a4e434166cc8db4ddb8451493a2de93cf7d893\",\"dweb:/ipfs/QmP5wxpX9cDzKtToA2cM5jbb928UN8DtGyV1cG4w7jPJCt\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x981460d505328349eed07798a87d2cb432da70633e45ac3c60b1081b3d7a8e86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f04330ec0b36ce165f97fac5d37a1e463e1735caca291d8b18d1249e4a6523cd\",\"dweb:/ipfs/Qma3R3iRhfz3pZuSnriZrmJsSJ5mexyYZVTNXEfDqczRhz\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0x25f9b099413f805b4c4bbad8cc179326c10be237aec00349caf91524f8db0bbc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dcfb75af07ad33b1f8e966f793db3df8fbcfb14103ed3644c0c634658a8fd099\",\"dweb:/ipfs/QmPWamdkbcKwG3ah2G9TZtKHzQmjnunsWoPWr5KKfbrKNb\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x869c06fcfd4e33df584f63c033467c3d4f5e51bdf78bc69d0eeef5c07e395ad9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://436721c3801101a789b998f14f161de63edb64229ff307b0951a97a964f07168\",\"dweb:/ipfs/QmaFWLRmVXFL629AyThz8Nc8W7RakZBVGo14AWB2WLyKcP\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd274645d15bb7e4fcb9c833e401b2c5837404f90057f11a49118f25e0af7c76f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d38e0b997bb7aebae26d190b03d0991feb0d204c45f945e60014e1ca9175de69\",\"dweb:/ipfs/QmWzsUHHAZcjMyF8uMDEtNpMTkYZdQrfvdKPobXvwVHKo6\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol\":{\"keccak256\":\"0x50e81a8b089e3f382b6c915aa0166773de64ea4756e8f9479d9943a5f956ddf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bfeb96a150537222e2191c03887127499a4f21dfb5f9a7211da4d81749b52848\",\"dweb:/ipfs/QmYR75ECbsBuxSiXmGvGfNKJRLoK5MdLUZL1bd8SixzxL4\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x6f9ed073e3dab12233a79cd85153f72c9e0f99c1f5512f6d5b1ef09fb46abbb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://093d2a804b792a0000883c2215585963ed98ec4341b45bc4224844623387d161\",\"dweb:/ipfs/QmR5shjVosAoxdmY3EfkUWgFNV4CVUcbRNS7tkvbipssPX\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"src/ERC20External.sol\":{\"keccak256\":\"0x421f511bb3aa7258fb7121aa66b9a2e8e0b7a07b7e51c800c714f7acbfd599d3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b3fde56a83eae12a31eb4875d8952a99d18591fe0f18b6a12392c8f48f76af46\",\"dweb:/ipfs/QmeApbmGv6Z2b1JynvBxaAK1j1eWhGYpeNEP56V8XXvpcz\"]},\"src/ERC20Internal.sol\":{\"keccak256\":\"0x0b2cd3a393d7e6be95eda2365630834725c2019e2cd38fc7d6477f03711fff36\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://623d7b77f1094b2b6eff5d3ba8d41ca9e957a45d1a3839626e5f5fc5ccea515f\",\"dweb:/ipfs/QmPUjfLsa7EghB3TDANHVoD9K8QUoG7wg9QT6pWXVjAytk\"]},\"src/IOwnable.sol\":{\"keccak256\":\"0x7462267790c0d2312be1cbce077e5565aa86dac0789718c87ad0948174ecb990\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7eca10ffa6a7985d11eb476a351b1c09701056b0bdf8146612173bb19764e3f1\",\"dweb:/ipfs/QmTPF85yFSL3jDt2atZDLT4RV3zs8ch8P3G7YzCUiU8gR9\"]},\"src/IPartyFlashCallback.sol\":{\"keccak256\":\"0xff1d473d27c4dc75441a5f0db2d761916cce4a702f660e998467791efd1d9b2e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3220d69c62ed8c8106762c92857f24011284e8ddcfa5db4210e506b112fa1870\",\"dweb:/ipfs/QmYoZiGsVwoJvyPMcsSste4tq93wVBgDqCZkwPY7dvyLBJ\"]},\"src/IPartyPool.sol\":{\"keccak256\":\"0x839c383ba8a94701193bd49fb2132528287d9283c40c1ee5540928979e07eb15\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d709e540a43eb8fd295f5119f2a3b3979e414c4fa2ffe33031bcf0033893e81d\",\"dweb:/ipfs/QmVxL6NBbX7t7QuaQAAqX1GxwQMFsHn1X4TrpkvWoLMcr8\"]},\"src/LMSRStabilized.sol\":{\"keccak256\":\"0xfbb5d611a105095a9ccc71f859908eec12ed7df4573a787e130bbaf9fbaa7935\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4f37e539fdbedd38488f5c5f0c8a4f579693e8de1ca546b60c580d4d0e12b28b\",\"dweb:/ipfs/QmR6VvQs54XKH67DyWrWdLBf2n6XTYnTjRniY4CFihZAVN\"]},\"src/LMSRStabilizedBalancedPair.sol\":{\"keccak256\":\"0x65a16365ae6dda4b5041f065aacc80661a9f9ef795e2be8930a7e89ad52d2cb0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://90fc178c2f8ad02e30ce0da5b5e4e46c4c0be1d00149372bf9c9e89fbf585766\",\"dweb:/ipfs/QmPajJdZiy4CzrU8A8HonpU3WtjFL4BqR3eKVMwej3GQdh\"]},\"src/NativeWrapper.sol\":{\"keccak256\":\"0xca6c8828bbc6e45737dd881d9bcc4077bc058ddcc118189ed49b4ee331ab5579\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ddb1604ad481e4c58d0f216c8b262515cb735c03fd93a5b36c4e69c81df5a238\",\"dweb:/ipfs/QmPhSjWsZksacUW8hR7tXNVRScoMSv6TQArbJBHcXJiRVB\"]},\"src/OwnableExternal.sol\":{\"keccak256\":\"0x0a0199368ad20a31e7169b3e56449bf022c9d680e0d487c118608a7f14cb7efb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3348a063649e01acf9c6aa6b7ce2ecf62ace8c6f1467477de7d605996f08ec64\",\"dweb:/ipfs/QmSoxb35FFsNCgXgWn91CupvjpGmyM31wcfxAVpVFFPecX\"]},\"src/OwnableInternal.sol\":{\"keccak256\":\"0x4dd94a81962a9708a07fdeba0f2b63bb5e17ef22f3b7a4d1e6afc5e589f95581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efecf80e2ef5afc06fb1f201270a41e15bed831275650d0e47c0d933e7b192ca\",\"dweb:/ipfs/QmNo4q3htXm758T8tKruR671mrDL2K1kkzRJjSKr7BTuiE\"]},\"src/PartyPool.sol\":{\"keccak256\":\"0xb4c702114de242ebd14f42f1fa5c0630fcb8b4896c3714cfa2fe6b4a22750e3b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5b863d2833be667bfb91122fb3c9d60116efa31e5193c7a32ce9b5709f177fb1\",\"dweb:/ipfs/QmP52RtoFFkmAQCAcvxudEkohipwaYmHEzv4851R6UZCmT\"]},\"src/PartyPoolBase.sol\":{\"keccak256\":\"0x829bf5e8ac223362b29c56fcfa44977d497dc326ed0d9f610d1bfd0d3a319bef\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0e1022c5edc415331e33e430c80399e1fd1ceea68f42132b1627c1dea04e46a8\",\"dweb:/ipfs/QmToLDSRcDBeYsbYw6GUFXaMxeDjUaCVMqjcV71Fvq5RGi\"]},\"src/PartyPoolHelpers.sol\":{\"keccak256\":\"0xd43b635d12b6684ae38a685eea4bc5783cebb3696514d8aafe3f4ce34f5e759c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://832046b365d443c4c1c715f98fe3de224e3ba82c67960053d51e6a79847c4af5\",\"dweb:/ipfs/QmZ4nWMwyYQzaBGF7rBE73GYTs4z3DRNYL1ZrGAsxN6RfP\"]},\"src/PartyPoolMintImpl.sol\":{\"keccak256\":\"0x687012c679807175880dc65a659f186ddb8247e6df34cc62b2bb9da915f377f4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://da63b9c3c3fc4a9d4aaf041da906ea36970423f166e90c6be5703f8ff29aaadf\",\"dweb:/ipfs/QmbuvRSXeB7F7X6gNvBkBng9us5NEwof9F5Ck5WWLmexPt\"]},\"src/PartyPoolSwapImpl.sol\":{\"keccak256\":\"0x1442b97d044356bc0a8f7ee3fdb421af632ae9ece458b026a0ac1298e935a7f4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f433d279473a746d9ff9188432bb456863ffc13d46ef76c4c422159986e9f0ca\",\"dweb:/ipfs/QmNeqogrUVYng6WwgWtShyeK8ek2w6esKyz4ZsjUaodcn9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"contract IERC20[]","name":"tokens_","type":"address[]"},{"internalType":"uint256[]","name":"bases_","type":"uint256[]"},{"internalType":"int128","name":"kappa_","type":"int128"},{"internalType":"uint256","name":"swapFeePpm_","type":"uint256"},{"internalType":"uint256","name":"flashFeePpm_","type":"uint256"},{"internalType":"uint256","name":"protocolFeePpm_","type":"uint256"},{"internalType":"address","name":"protocolFeeAddress_","type":"address"},{"internalType":"contract NativeWrapper","name":"wrapperToken_","type":"address"},{"internalType":"contract PartyPoolSwapImpl","name":"swapImpl_","type":"address"},{"internalType":"contract PartyPoolMintImpl","name":"mintImpl_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"payer","type":"address","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256[]","name":"amounts","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"lpBurned","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"payer","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"targetTokenIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"payoutUint","type":"uint256","indexed":false}],"type":"event","name":"BurnSwap","anonymous":false},{"inputs":[],"type":"event","name":"Killed","anonymous":false},{"inputs":[{"internalType":"address","name":"payer","type":"address","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256[]","name":"amounts","type":"uint256[]","indexed":false},{"internalType":"uint256","name":"lpMinted","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"payer","type":"address","indexed":false},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"contract IERC20","name":"tokenIn","type":"address","indexed":true},{"internalType":"contract IERC20","name":"tokenOut","type":"address","indexed":true},{"internalType":"uint256","name":"amountIn","type":"uint256","indexed":false},{"internalType":"uint256","name":"amountOut","type":"uint256","indexed":false}],"type":"event","name":"Swap","anonymous":false},{"inputs":[{"internalType":"address","name":"payer","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"uint256","name":"inputTokenIndex","type":"uint256","indexed":true},{"internalType":"uint256","name":"grossTransfer","type":"uint256","indexed":false},{"internalType":"uint256","name":"netInput","type":"uint256","indexed":false},{"internalType":"uint256","name":"feeTaken","type":"uint256","indexed":false}],"type":"event","name":"SwapMint","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"LMSR","outputs":[{"internalType":"struct LMSRStabilized.State","name":"","type":"tuple","components":[{"internalType":"uint256","name":"nAssets","type":"uint256"},{"internalType":"int128","name":"kappa","type":"int128"},{"internalType":"int128[]","name":"qInternal","type":"int128[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allProtocolFeesOwed","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allTokens","outputs":[{"internalType":"contract IERC20[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"lpAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"unwrap","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"burn","outputs":[{"internalType":"uint256[]","name":"withdrawAmounts","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"lpAmount","type":"uint256"},{"internalType":"uint256","name":"inputTokenIndex","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"unwrap","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"burnSwap","outputs":[{"internalType":"uint256","name":"amountOutUint","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"collectProtocolFees"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"denominators","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"flashFeePpm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract IERC3156FlashBorrower","name":"receiver","type":"address"},{"internalType":"address","name":"tokenAddr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flashLoan","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"stateMutability":"view","type":"function","name":"getToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"lpTokens","type":"uint256"}],"stateMutability":"payable","type":"function","name":"initialMint","outputs":[{"internalType":"uint256","name":"lpMinted","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"kappa","outputs":[{"internalType":"int128","name":"","type":"int128"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"kill"},{"inputs":[],"stateMutability":"view","type":"function","name":"killed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"lpTokenAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"lpMinted","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mintImpl","outputs":[{"internalType":"contract PartyPoolMintImpl","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"numTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"protocolFeeAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"protocolFeePpm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"inputTokenIndex","type":"uint256"},{"internalType":"uint256","name":"outputTokenIndex","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"},{"internalType":"int128","name":"limitPrice","type":"int128"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"unwrap","type":"bool"}],"stateMutability":"payable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"inputTokenIndex","type":"uint256"},{"internalType":"uint256","name":"outputTokenIndex","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"},{"internalType":"int128","name":"limitPrice","type":"int128"}],"stateMutability":"view","type":"function","name":"swapAmounts","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"swapFeePpm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"inputTokenIndex","type":"uint256"},{"internalType":"uint256","name":"maxAmountIn","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"stateMutability":"payable","type":"function","name":"swapMint","outputs":[{"internalType":"uint256","name":"lpMinted","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"swapMintImpl","outputs":[{"internalType":"contract PartyPoolSwapImpl","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"payer","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"inputTokenIndex","type":"uint256"},{"internalType":"uint256","name":"outputTokenIndex","type":"uint256"},{"internalType":"int128","name":"limitPrice","type":"int128"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"unwrap","type":"bool"}],"stateMutability":"payable","type":"function","name":"swapToLimit","outputs":[{"internalType":"uint256","name":"amountInUsed","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"wrapperToken","outputs":[{"internalType":"contract NativeWrapper","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"burn(address,address,uint256,uint256,bool)":{"details":"This function forwards the call to the burn implementation via delegatecall","params":{"deadline":"timestamp after which the transaction will revert. Pass 0 to ignore.","lpAmount":"amount of LP tokens to burn (proportional withdrawal)","payer":"address that provides the LP tokens to burn","receiver":"address that receives the withdrawn tokens","unwrap":"if true and the native token is being withdrawn, it is unwraped and sent as native currency"}},"burnSwap(address,address,uint256,uint256,uint256,bool)":{"details":"This function forwards the call to the burnSwap implementation via delegatecall","params":{"deadline":"optional deadline","inputTokenIndex":"index of target asset to receive","lpAmount":"amount of LP _tokens to burn","payer":"who burns LP _tokens","receiver":"who receives the single asset"},"returns":{"amountOutUint":"uint amount of asset i sent to receiver"}},"collectProtocolFees()":{"details":"Anyone can call; must have protocolFeeAddress != address(0) to be operational."},"constructor":{"params":{"bases_":"scaling _bases for each token (n) - used when converting to/from internal 64.64 amounts","flashFeePpm_":"fee in parts-per-million, taken for flash loans","kappa_":"liquidity parameter κ (Q64.64) used to derive b = κ * S(q)","mintImpl_":"address of the Mint implementation contract","name_":"LP token name","owner_":"Admin account that can disable the vault using kill()","swapFeePpm_":"fee in parts-per-million, taken from swap input amounts before LMSR calculations","swapImpl_":"address of the SwapMint implementation contract","symbol_":"LP token symbol","tokens_":"token addresses (n)"}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` _tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"denominators()":{"details":"denominators()[i] is the base for tokens[i]. These bases are chosen by deployer and must match token decimals."},"flashLoan(address,address,uint256,bytes)":{"details":"Loan `amount` _tokens to `receiver`, and takes it back plus a `flashFee` after the callback.","params":{"amount":"The amount of _tokens lent.","data":"A data parameter to be passed on to the `receiver` for any custom use.","receiver":"The contract receiving the _tokens, needs to implement the `onFlashLoan(address user, uint256 amount, uint256 fee, bytes calldata)` interface.","tokenAddr":"The loan currency."}},"getToken(uint256)":{"details":"tokens[i] corresponds to the i-th asset and maps to index i in the internal LMSR arrays."},"initialMint(address,uint256)":{"details":"Assumes tokens have already been transferred to the pool prior to calling. Can only be called when the pool is uninitialized (totalSupply() == 0 or _lmsr.nAssets == 0).","params":{"lpTokens":"The number of LP tokens to issue for this mint. If 0, then the number of tokens returned will equal the LMSR internal q total","receiver":"address that receives the LP tokens"}},"kappa()":{"details":"Pools are constructed with a κ value; this getter exposes the κ used by the pool."},"mint(address,address,uint256,uint256)":{"details":"This function forwards the call to the mint implementation via delegatecall","params":{"deadline":"timestamp after which the transaction will revert. Pass 0 to ignore.","lpTokenAmount":"desired amount of LP _tokens to mint","payer":"address that provides the input _tokens","receiver":"address that receives the LP _tokens"}},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"protocolFeePpm()":{"details":"This is the fraction (in ppm) of the pool-collected fees that are owed to the protocol."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"swap(address,address,uint256,uint256,uint256,int128,uint256,bool)":{"details":"This function transfers the exact gross input (including fee) from payer and sends the computed output to receiver. Non-standard tokens (fee-on-transfer, rebasers) are rejected via balance checks.","params":{"deadline":"timestamp after which the transaction will revert. Pass 0 to ignore.","inputTokenIndex":"index of input asset","limitPrice":"maximum acceptable marginal price (64.64 fixed point). Pass 0 to ignore.","maxAmountIn":"maximum amount of token inputTokenIndex (uint256) to transfer in (inclusive of fees)","outputTokenIndex":"index of output asset","payer":"address of the account that pays for the swap","receiver":"address that will receive the output tokens"},"returns":{"amountIn":"actual input used (uint256), amountOut actual output sent (uint256), fee fee taken from the input (uint256)"}},"swapAmounts(uint256,uint256,uint256,int128)":{"params":{"inputTokenIndex":"index of input token","limitPrice":"maximum acceptable marginal price (pass 0 to ignore)","maxAmountIn":"maximum gross input allowed (inclusive of fee)","outputTokenIndex":"index of output token"},"returns":{"amountIn":"gross input amount to transfer (includes fee), amountOut output amount user would receive, fee fee amount taken"}},"swapMint(address,address,uint256,uint256,uint256)":{"details":"This function forwards the call to the swapMint implementation via delegatecall","params":{"deadline":"optional deadline","inputTokenIndex":"index of the input token","maxAmountIn":"maximum uint token input (inclusive of fee)","payer":"who transfers the input token","receiver":"who receives the minted LP _tokens"},"returns":{"lpMinted":"actual LP minted (uint)"}},"swapToLimit(address,address,uint256,uint256,int128,uint256,bool)":{"details":"If balances prevent fully reaching the limit, the function caps and returns actuals. The payer must transfer the exact gross input computed by the view.","params":{"deadline":"timestamp after which the transaction will revert. Pass 0 to ignore.","inputTokenIndex":"index of input asset","limitPrice":"target marginal price to reach (must be > 0)","outputTokenIndex":"index of output asset","payer":"address of the account that pays for the swap","receiver":"address that will receive the output tokens"},"returns":{"amountInUsed":"actual input used excluding fee (uint256), amountOut actual output sent (uint256), fee fee taken from the input (uint256)"}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s _tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"allProtocolFeesOwed()":{"notice":"Protocol fee ledger accessor. Returns tokens owed (raw uint token units) from this pool as protocol fees that have not yet been transferred out."},"allTokens()":{"notice":"Returns the list of all token addresses in the pool (copy)."},"burn(address,address,uint256,uint256,bool)":{"notice":"Burn LP tokens and withdraw the proportional basket to receiver."},"burnSwap(address,address,uint256,uint256,uint256,bool)":{"notice":"Burn LP _tokens then swap the redeemed proportional basket into a single asset `inputTokenIndex` and send to receiver."},"collectProtocolFees()":{"notice":"Transfer all protocol fees to the configured protocolFeeAddress and zero the ledger."},"denominators()":{"notice":"Per-token uint base denominators used to convert uint token amounts <-> internal Q64.64 representation."},"flashFeePpm()":{"notice":"Flash-loan fee in parts-per-million (ppm) applied to flash borrow amounts."},"getToken(uint256)":{"notice":"Token addresses comprising the pool. Effectively immutable after construction."},"initialMint(address,uint256)":{"notice":"Initial mint to set up pool for the first time."},"kappa()":{"notice":"Liquidity parameter κ (Q64.64) used by the LMSR kernel: b = κ * S(q)"},"kill()":{"notice":"If a security problem is found, the vault owner may call this function to permanently disable swap and mint functionality, leaving only burns (withdrawals) working."},"killed()":{"notice":"If true, the vault has been disabled by the owner and only burns (withdrawals) are allowed."},"mint(address,address,uint256,uint256)":{"notice":"Proportional mint for existing pool."},"numTokens()":{"notice":"Returns the number of tokens (n) in the pool."},"protocolFeeAddress()":{"notice":"Address that will receive collected protocol tokens when collectProtocolFees() is called."},"protocolFeePpm()":{"notice":"Protocol fee share (ppm) applied to fees collected by the pool (floored when accrued)"},"swap(address,address,uint256,uint256,uint256,int128,uint256,bool)":{"notice":"Swap input token inputTokenIndex -> token outputTokenIndex. Payer must approve token inputTokenIndex."},"swapAmounts(uint256,uint256,uint256,int128)":{"notice":"External view to quote exact-in swap amounts (gross input incl. fee and output), matching swap() computations"},"swapFeePpm()":{"notice":"Per-swap fee in parts-per-million (ppm). Fee is taken from input amounts before LMSR computations."},"swapMint(address,address,uint256,uint256,uint256)":{"notice":"Single-token mint: deposit a single token, charge swap-LMSR cost, and mint LP."},"swapToLimit(address,address,uint256,uint256,int128,uint256,bool)":{"notice":"Swap up to the price limit; computes max input to reach limit then performs swap."},"wrapperToken()":{"notice":"Token contract used for wrapping native currency"}},"version":1}},"settings":{"remappings":["@abdk/=lib/abdk-libraries-solidity/","@openzeppelin/=lib/openzeppelin-contracts/","abdk-libraries-solidity/=lib/abdk-libraries-solidity/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":100000000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/PartyPool.sol":"PartyPool"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"lib/abdk-libraries-solidity/ABDKMath64x64.sol":{"keccak256":"0x1364fdc24192b982f647c7fc68dcb2f6fc1b5e201843e773144bd23a76cb3b97","urls":["bzz-raw://490712cc07db32f274899b17aade9c975f06010848c21500b8a5ead6898e09c7","dweb:/ipfs/QmZMPKjDgwCFSGdLWJW6g5E7hDLByA9hNjXzAwJ4GKTZvN"],"license":"BSD-4-Clause"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashBorrower.sol":{"keccak256":"0x4e4b982b56b50290dd1dcaa2fef1178b1574dfc7c0f0a8ef9cb68a207d72582e","urls":["bzz-raw://eb7adc69bcb4d8ef0b001869b24e831edd411b6c5405e03c5e95ca109a7b7bcd","dweb:/ipfs/QmWeXYWVPUuwVWPjLXn44PrEnv7bJg3JiVkFm7riDkgTVk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC3156FlashLender.sol":{"keccak256":"0x3a3549277762438ad9a38fce50493ed8995b806f78aabff02d51b4e1671ce6f5","urls":["bzz-raw://f105ec892766b8a41ece6d3b10a4e434166cc8db4ddb8451493a2de93cf7d893","dweb:/ipfs/QmP5wxpX9cDzKtToA2cM5jbb928UN8DtGyV1cG4w7jPJCt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x981460d505328349eed07798a87d2cb432da70633e45ac3c60b1081b3d7a8e86","urls":["bzz-raw://f04330ec0b36ce165f97fac5d37a1e463e1735caca291d8b18d1249e4a6523cd","dweb:/ipfs/Qma3R3iRhfz3pZuSnriZrmJsSJ5mexyYZVTNXEfDqczRhz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0x25f9b099413f805b4c4bbad8cc179326c10be237aec00349caf91524f8db0bbc","urls":["bzz-raw://dcfb75af07ad33b1f8e966f793db3df8fbcfb14103ed3644c0c634658a8fd099","dweb:/ipfs/QmPWamdkbcKwG3ah2G9TZtKHzQmjnunsWoPWr5KKfbrKNb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x869c06fcfd4e33df584f63c033467c3d4f5e51bdf78bc69d0eeef5c07e395ad9","urls":["bzz-raw://436721c3801101a789b998f14f161de63edb64229ff307b0951a97a964f07168","dweb:/ipfs/QmaFWLRmVXFL629AyThz8Nc8W7RakZBVGo14AWB2WLyKcP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd274645d15bb7e4fcb9c833e401b2c5837404f90057f11a49118f25e0af7c76f","urls":["bzz-raw://d38e0b997bb7aebae26d190b03d0991feb0d204c45f945e60014e1ca9175de69","dweb:/ipfs/QmWzsUHHAZcjMyF8uMDEtNpMTkYZdQrfvdKPobXvwVHKo6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol":{"keccak256":"0x50e81a8b089e3f382b6c915aa0166773de64ea4756e8f9479d9943a5f956ddf5","urls":["bzz-raw://bfeb96a150537222e2191c03887127499a4f21dfb5f9a7211da4d81749b52848","dweb:/ipfs/QmYR75ECbsBuxSiXmGvGfNKJRLoK5MdLUZL1bd8SixzxL4"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x6f9ed073e3dab12233a79cd85153f72c9e0f99c1f5512f6d5b1ef09fb46abbb0","urls":["bzz-raw://093d2a804b792a0000883c2215585963ed98ec4341b45bc4224844623387d161","dweb:/ipfs/QmR5shjVosAoxdmY3EfkUWgFNV4CVUcbRNS7tkvbipssPX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"src/ERC20External.sol":{"keccak256":"0x421f511bb3aa7258fb7121aa66b9a2e8e0b7a07b7e51c800c714f7acbfd599d3","urls":["bzz-raw://b3fde56a83eae12a31eb4875d8952a99d18591fe0f18b6a12392c8f48f76af46","dweb:/ipfs/QmeApbmGv6Z2b1JynvBxaAK1j1eWhGYpeNEP56V8XXvpcz"],"license":"UNLICENSED"},"src/ERC20Internal.sol":{"keccak256":"0x0b2cd3a393d7e6be95eda2365630834725c2019e2cd38fc7d6477f03711fff36","urls":["bzz-raw://623d7b77f1094b2b6eff5d3ba8d41ca9e957a45d1a3839626e5f5fc5ccea515f","dweb:/ipfs/QmPUjfLsa7EghB3TDANHVoD9K8QUoG7wg9QT6pWXVjAytk"],"license":"UNLICENSED"},"src/IOwnable.sol":{"keccak256":"0x7462267790c0d2312be1cbce077e5565aa86dac0789718c87ad0948174ecb990","urls":["bzz-raw://7eca10ffa6a7985d11eb476a351b1c09701056b0bdf8146612173bb19764e3f1","dweb:/ipfs/QmTPF85yFSL3jDt2atZDLT4RV3zs8ch8P3G7YzCUiU8gR9"],"license":"MIT"},"src/IPartyFlashCallback.sol":{"keccak256":"0xff1d473d27c4dc75441a5f0db2d761916cce4a702f660e998467791efd1d9b2e","urls":["bzz-raw://3220d69c62ed8c8106762c92857f24011284e8ddcfa5db4210e506b112fa1870","dweb:/ipfs/QmYoZiGsVwoJvyPMcsSste4tq93wVBgDqCZkwPY7dvyLBJ"],"license":"UNLICENSED"},"src/IPartyPool.sol":{"keccak256":"0x839c383ba8a94701193bd49fb2132528287d9283c40c1ee5540928979e07eb15","urls":["bzz-raw://d709e540a43eb8fd295f5119f2a3b3979e414c4fa2ffe33031bcf0033893e81d","dweb:/ipfs/QmVxL6NBbX7t7QuaQAAqX1GxwQMFsHn1X4TrpkvWoLMcr8"],"license":"UNLICENSED"},"src/LMSRStabilized.sol":{"keccak256":"0xfbb5d611a105095a9ccc71f859908eec12ed7df4573a787e130bbaf9fbaa7935","urls":["bzz-raw://4f37e539fdbedd38488f5c5f0c8a4f579693e8de1ca546b60c580d4d0e12b28b","dweb:/ipfs/QmR6VvQs54XKH67DyWrWdLBf2n6XTYnTjRniY4CFihZAVN"],"license":"UNLICENSED"},"src/LMSRStabilizedBalancedPair.sol":{"keccak256":"0x65a16365ae6dda4b5041f065aacc80661a9f9ef795e2be8930a7e89ad52d2cb0","urls":["bzz-raw://90fc178c2f8ad02e30ce0da5b5e4e46c4c0be1d00149372bf9c9e89fbf585766","dweb:/ipfs/QmPajJdZiy4CzrU8A8HonpU3WtjFL4BqR3eKVMwej3GQdh"],"license":"UNLICENSED"},"src/NativeWrapper.sol":{"keccak256":"0xca6c8828bbc6e45737dd881d9bcc4077bc058ddcc118189ed49b4ee331ab5579","urls":["bzz-raw://ddb1604ad481e4c58d0f216c8b262515cb735c03fd93a5b36c4e69c81df5a238","dweb:/ipfs/QmPhSjWsZksacUW8hR7tXNVRScoMSv6TQArbJBHcXJiRVB"],"license":"UNLICENSED"},"src/OwnableExternal.sol":{"keccak256":"0x0a0199368ad20a31e7169b3e56449bf022c9d680e0d487c118608a7f14cb7efb","urls":["bzz-raw://3348a063649e01acf9c6aa6b7ce2ecf62ace8c6f1467477de7d605996f08ec64","dweb:/ipfs/QmSoxb35FFsNCgXgWn91CupvjpGmyM31wcfxAVpVFFPecX"],"license":"MIT"},"src/OwnableInternal.sol":{"keccak256":"0x4dd94a81962a9708a07fdeba0f2b63bb5e17ef22f3b7a4d1e6afc5e589f95581","urls":["bzz-raw://efecf80e2ef5afc06fb1f201270a41e15bed831275650d0e47c0d933e7b192ca","dweb:/ipfs/QmNo4q3htXm758T8tKruR671mrDL2K1kkzRJjSKr7BTuiE"],"license":"MIT"},"src/PartyPool.sol":{"keccak256":"0xb4c702114de242ebd14f42f1fa5c0630fcb8b4896c3714cfa2fe6b4a22750e3b","urls":["bzz-raw://5b863d2833be667bfb91122fb3c9d60116efa31e5193c7a32ce9b5709f177fb1","dweb:/ipfs/QmP52RtoFFkmAQCAcvxudEkohipwaYmHEzv4851R6UZCmT"],"license":"UNLICENSED"},"src/PartyPoolBase.sol":{"keccak256":"0x829bf5e8ac223362b29c56fcfa44977d497dc326ed0d9f610d1bfd0d3a319bef","urls":["bzz-raw://0e1022c5edc415331e33e430c80399e1fd1ceea68f42132b1627c1dea04e46a8","dweb:/ipfs/QmToLDSRcDBeYsbYw6GUFXaMxeDjUaCVMqjcV71Fvq5RGi"],"license":"UNLICENSED"},"src/PartyPoolHelpers.sol":{"keccak256":"0xd43b635d12b6684ae38a685eea4bc5783cebb3696514d8aafe3f4ce34f5e759c","urls":["bzz-raw://832046b365d443c4c1c715f98fe3de224e3ba82c67960053d51e6a79847c4af5","dweb:/ipfs/QmZ4nWMwyYQzaBGF7rBE73GYTs4z3DRNYL1ZrGAsxN6RfP"],"license":"UNLICENSED"},"src/PartyPoolMintImpl.sol":{"keccak256":"0x687012c679807175880dc65a659f186ddb8247e6df34cc62b2bb9da915f377f4","urls":["bzz-raw://da63b9c3c3fc4a9d4aaf041da906ea36970423f166e90c6be5703f8ff29aaadf","dweb:/ipfs/QmbuvRSXeB7F7X6gNvBkBng9us5NEwof9F5Ck5WWLmexPt"],"license":"UNLICENSED"},"src/PartyPoolSwapImpl.sol":{"keccak256":"0x1442b97d044356bc0a8f7ee3fdb421af632ae9ece458b026a0ac1298e935a7f4","urls":["bzz-raw://f433d279473a746d9ff9188432bb456863ffc13d46ef76c4c422159986e9f0ca","dweb:/ipfs/QmNeqogrUVYng6WwgWtShyeK8ek2w6esKyz4ZsjUaodcn9"],"license":"UNLICENSED"}},"version":1},"id":55} |